summaryrefslogtreecommitdiff
path: root/README.NONPORTABLE
diff options
context:
space:
mode:
authorrpj <rpj>2001-02-07 08:45:46 +0000
committerrpj <rpj>2001-02-07 08:45:46 +0000
commit7a31ef49c345dfb39de7cd6d43eeb29c34129495 (patch)
tree9515903248d26f12144a0e6161f7b1f6fd726978 /README.NONPORTABLE
parent2f4a1905d1a8c424900a8615ec730f7637482525 (diff)
Updates and minor corrections and changes.
Diffstat (limited to 'README.NONPORTABLE')
-rw-r--r--README.NONPORTABLE119
1 files changed, 119 insertions, 0 deletions
diff --git a/README.NONPORTABLE b/README.NONPORTABLE
new file mode 100644
index 0000000..7dfba7f
--- /dev/null
+++ b/README.NONPORTABLE
@@ -0,0 +1,119 @@
+Non-portable functions included in the library
+----------------------------------------------
+
+HANDLE
+pthread_getw32threadhandle_np(pthread_t thread);
+
+ Returns the win32 thread handle that the POSIX
+ thread "thread" is running as.
+
+ Applications can use the win32 handle to set
+ win32 specific attributes of the thread.
+
+int
+pthread_delay_np (const struct timespec *interval);
+
+ This routine causes a thread to delay execution for a specific
+ period of time. This period ends at the current time plus the
+ specified interval. The routine will not return before the end
+ of the period is reached, but may return an arbitrary amount
+ of time after the period has gone by. This can be due to
+ system load, thread priorities, and system timer granularity.
+
+ Specifying an interval of zero (0) seconds and zero (0)
+ nanoseconds is allowed and can be used to force the thread
+ to give up the processor or to deliver a pending cancelation
+ request.
+
+ This routine is a cancelation point.
+
+ The timespec structure contains the following two fields:
+
+ tv_sec is an integer number of seconds.
+ tv_nsec is an integer number of nanoseconds.
+
+ Return Values
+
+ If an error condition occurs, this routine returns an integer value
+ indicating the type of error. Possible return values are as follows:
+
+ 0 Successful completion.
+ [EINVAL] The value specified by interval is invalid.
+
+
+BOOL
+pthread_win32_process_attach_np (void);
+
+BOOL
+pthread_win32_process_detach_np (void);
+
+BOOL
+pthread_win32_thread_attach_np (void);
+
+BOOL
+pthread_win32_thread_detach_np (void);
+
+ These functions contain the code normally run via dllMain
+ when the library is used as a dll but which need to be
+ called explicitly by an application when the library
+ is statically linked.
+
+ You will need to call pthread_win32_process_attach_np() before
+ you can call any pthread routines when statically linking.
+ You should call pthread_win32_process_detach_np() before
+ exiting your application to clean up.
+
+ pthread_win32_thread_attach_np() is currently a no-op, but
+ pthread_win32_thread_detach_np() is needed to clean up
+ after Win32 threads that have called pthreads routines
+ have exited.
+
+ These functions invariably return TRUE except for
+ pthread_win32_process_attach_np() which will return FALSE
+ if pthreads-win32 initialisation fails.
+
+
+int
+pthreadCancelableWait (HANDLE waitHandle);
+
+int
+pthreadCancelableTimedWait (HANDLE waitHandle, DWORD timeout);
+
+ These two functions provide hooks into the pthread_cancel
+ mechanism that will allow you to wait on a Windows handle
+ and make it a cancellation point. Both functions block
+ until either the given w32 handle is signaled, or
+ pthread_cancel has been called. It is implemented using
+ WaitForMultipleObjects on 'waitHandle' and a manually
+ reset w32 event used to implement pthread_cancel.
+
+
+void
+pthread_mutexattr_setforcecs_np(pthread_mutexattr_t *attr,
+ int forcecs);
+
+ This function is no longer required as pthreads-win32
+ mutexes are now based entirely on Win32 critical
+ sections. Retained for backward compatibility.
+
+ Allows an application to force the library to use
+ critical sections rather than win32 mutexes as
+ the basis for any mutex that uses "attr".
+ Critical sections are significantly faster than
+ mutexes.
+
+ Values for "forcecs" are:
+ PTHREAD_MUTEX_AUTO_CS_NP
+ - allow the library to decide based on
+ availability of tryEnterCriticalSection().
+ The library determines this at runtime
+ and will use critical sections whenever
+ tryEnterCriticalSection() is available.
+ PTHREAD_MUTEX_FORCE_CS_NP
+ - force use of critical sections even if
+ tryEnterCriticalSection() isn't provided
+ by the system, but you'd better not try
+ to use pthread_mutex_trylock() on any
+ mutex that uses "attr" if you want your
+ application to work on all versions of
+ Windows.