summaryrefslogtreecommitdiffstats
path: root/Include/pystate.h
Commit message (Collapse)AuthorAgeFilesLines
* Excise DL_EXPORT from Include.Mark Hammond2002-08-121-15/+15
| | | | Thanks to Skip Montanaro and Kalle Svensson for the patches.
* Add a low-level API to access interpreters, for David Beazley.Guido van Rossum2001-07-191-0/+7
| | | | SF patch #436376.
* Patch #412229: Add functions sys.getdlopenflags and sys.setdlopenflags.Martin v. Löwis2001-07-181-0/+3
| | | | Add dlopenflags to PyInterpreterState, and use it in dlopen calls.
* This change adjusts the profiling/tracing support so that the commonFred Drake2001-07-031-0/+1
| | | | | | | | | | | | | | | | path (with no profile/trace function) through eval_code2() and eval_frame() avoids several checks. In the common cases of calls, returns, and exception propogation, eval_code2() and eval_frame() used to test two values in the thread-state: the profiling function and the tracing function. With this change, a flag is set in the thread-state if either of these is active, allowing a single check to suffice when both are NULL. This also simplifies the code needed when either function is in use but is already active (to avoid profiling/tracing the profiler/tracer); the flag is set to 0 when the profile/trace code is entered, allowing the same check to suffice for "already in the tracer" for call/return/ exception events.
* Revise the interface to the profiling and tracing support for theFred Drake2001-06-271-2/+13
| | | | | | | | | | | | | | | Python interpreter. This change adds two new C-level APIs: PyEval_SetProfile() and PyEval_SetTrace(). These can be used to install profile and trace functions implemented in C, which can operate at much higher speeds than Python-based functions. The overhead for calling a C-based profile function is a very small fraction of a percent of the overhead involved in calling a Python-based function. The machinery required to call a Python-based profile or trace function been moved to sysmodule.c, where sys.setprofile() and sys.setprofile() simply become users of the new interface.
* Add a new API, PyThreadState_DeleteCurrent() that combinesGuido van Rossum2001-01-231-0/+3
| | | | | PyThreadState_Delete() and PyEval_ReleaseLock(). It is only defined if WITH_THREAD is defined.
* REMOVED all CWI, CNRI and BeOpen copyright markings.Guido van Rossum2000-09-011-9/+0
| | | | This should match the situation in the 1.6b1 tree.
* ANSI-fication and Py_PROTO extermination.Fred Drake2000-07-081-37/+37
|
* Change copyright notice - 2nd try.Guido van Rossum2000-06-301-6/+0
|
* Change copyright notice.Guido van Rossum2000-06-301-22/+7
|
* I can't seem to do anything right :-)Guido van Rossum1998-12-211-1/+1
| | | | | As Chris H. points out, I should have added 'extern' to the declaration of _PyThreadState_Current. Here it is.
* Add macro version of PyThreadState_GET(). This usesGuido van Rossum1998-12-211-0/+11
| | | | _PyThreadState_Current, defined in pystate.c.
* Add DL_IMPORT(returntype) for all officially exported functions.Guido van Rossum1998-12-041-9/+9
|
* On second though, NEXITFUNCS should be defined in pythonrun.c and notGuido van Rossum1998-10-011-2/+0
| | | | | here; pystate.h doesn't use it (I thought I wanted to move the array there but that won't work).
* Move 'dict' struct member to end of struct. This ensures binaryGuido van Rossum1998-04-131-2/+2
| | | | | | compatibility for shared libraries. *** WARNING -- IF YOU BUILT 1.5.1BETA1, DO A "MAKE CLEAN" ***
* Add dict struct member and PyThreadState_GetDict() prototype.Guido van Rossum1998-04-101-0/+3
|
* Mass checkin (more to follow for other directories).Guido van Rossum1997-08-021-42/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce truly separate (sub)interpreter objects. For now, these must be used by separate threads, created from C. See Demo/pysvr for an example of how to use this. This also rationalizes Python's initialization and finalization behavior: Py_Initialize() -- initialize the whole interpreter Py_Finalize() -- finalize the whole interpreter tstate = Py_NewInterpreter() -- create a new (sub)interpreter Py_EndInterpreter(tstate) -- delete a new (sub)interpreter There are also new interfaces relating to threads and the interpreter lock, which can be used to create new threads, and sometimes have to be used to manipulate the interpreter lock when creating or deleting sub-interpreters. These are only defined when WITH_THREAD is defined: PyEval_AcquireLock() -- acquire the interpreter lock PyEval_ReleaseLock() -- release the interpreter lock PyEval_AcquireThread(tstate) -- acquire the lock and make the thread current PyEval_ReleaseThread(tstate) -- release the lock and make NULL current Other administrative changes: - The header file bltinmodule.h is deleted. - The init functions for Import, Sys and Builtin are now internal and declared in pythonrun.h. - Py_Setup() and Py_Cleanup() are no longer declared. - The interpreter state and thread state structures are now linked together in a chain (the chain of interpreters is a static variable in pythonrun.c). - Some members of the interpreter and thread structures have new, shorter, more consistent, names. - Added declarations for _PyImport_{Find,Fixup}Extension() to import.h.
* Added Py_PROTO macros for SunOS 4.x /bin/cc.Guido van Rossum1997-05-201-6/+6
|
* Massive changes for separate thread state management.Guido van Rossum1997-05-051-0/+134
All per-thread globals are moved into a struct which is manipulated separately.