Commit Graph

25 Commits

Author SHA1 Message Date
davidxu
74604ed9c4 To support stack unwinding for cancellation points, add -fexceptions flag
for them, two functions _pthread_cancel_enter and _pthread_cancel_leave
are added to let thread enter and leave a cancellation point, it also
makes it possible that other functions can be cancellation points in
libraries without having to be rewritten in libthr.
2010-09-25 01:57:47 +00:00
ru
4d27ff91d0 Fixed dependencies (make checkdpadd). 2010-02-25 20:24:19 +00:00
ed
09818ac28e Build lib/ with WARNS=6 by default.
Similar to libexec/, do the same with lib/. Make WARNS=6 the norm and
lower it when needed.

I'm setting WARNS?=0 for secure/. It seems secure/ includes the
Makefile.inc provided by lib/. I'm not going to touch that directory.
Most of the code there is contributed anyway.
2010-01-02 09:58:07 +00:00
davidxu
a40357aa83 Make following functions be cancellation points:
mq_receive
mq_send
mq_timereceive
mq_timedsend
2009-11-18 06:10:50 +00:00
davidxu
53b319698b link libpthread because the librt really needs it to fully function. 2009-11-18 05:09:03 +00:00
davidxu
03ccaa6151 Fix compiler warnings. 2009-11-18 01:35:36 +00:00
kmacy
925bfa4378 atomic_fetchadd_int works on unsigned quantities - change
sigev_generation to be unsigned

MFC after:	1 month
2008-08-15 21:08:48 +00:00
deischen
bf3a79274d Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries.  If necessary, this will happen later.
2007-05-13 14:12:40 +00:00
deischen
ae8de717aa Don't enable symbol versioning for librt by default just yet. 2007-04-29 17:08:13 +00:00
deischen
c8d3bdefd9 Symbol version librt. 2007-04-29 14:01:45 +00:00
deischen
7415466d60 Account for recent changes in namespace.h. Use _pthread_create
instead of pthread_create.
2006-03-29 04:20:53 +00:00
davidxu
645d4d320d Implement SIGEV_THREAD notification for aio_fsync. 2006-03-24 03:24:27 +00:00
ru
a11e502d44 No need to define NO_MAN here. 2006-03-15 10:41:58 +00:00
davidxu
45ada7f2f2 Block all signals in helper threads except those should not be blocked. 2006-03-10 08:01:23 +00:00
davidxu
e99490121b Set SNF_SYNC flag for timer, as the timer notification should be
serialized.
2006-03-08 00:34:54 +00:00
davidxu
d77810c249 Remove stale comments. 2006-03-07 08:42:02 +00:00
davidxu
13fd270405 1. Always call user callback function in newly created thread, it seems
POSIX implies that the user callback function must be executed in clean
environment.
2. Use newly introduced pthread stubs in libc.
2006-03-07 08:28:07 +00:00
davidxu
8e36ba772a Use a thread pool to process notification if sigev_notify_attributes
is default and caller does not require dedicated thread. timer needs
a dedicated thread to maintain overrun count correctly in notification
context. mqueue and aio can use thread pool to do notification
concurrently, the thread pool has lifecycle control, some threads will
exit if they have idled for a while.
2006-03-04 00:18:19 +00:00
davidxu
869493f015 save sigev_node pointer. 2006-03-04 00:08:24 +00:00
davidxu
a8886a11b7 1. Fix a race in aio_return.
2. Save and restore syscall errno correctly.
3. Style fix.
2006-03-01 23:41:47 +00:00
davidxu
5d292c8fb4 Style fix. 2006-03-01 23:40:00 +00:00
davidxu
c468432d46 Fix a mutex lock/unlock mismatch. 2006-03-01 23:38:53 +00:00
davidxu
8ddf0913dd Forgot to revert to use weak symbols when I was debugging, fix it! 2006-03-01 08:50:36 +00:00
davidxu
c652436886 Add missing parameter mq_attr * for mq_open. 2006-03-01 08:06:09 +00:00
davidxu
22fb15cfe9 Bring in my initial version of POSIX realtime extension library.
Current the library implements mqueue, timer and aio with SIGEV_THREAD
notification supported.

Earlier version reviewed by: deischen
2006-03-01 06:37:34 +00:00