summaryrefslogtreecommitdiffstats
path: root/lib/libthr/pthread.map
Commit message (Collapse)AuthorAgeFilesLines
* Introduce a non-portable function pthread_getthreadid_np(3) to retrievejkim2011-02-071-0/+2
| | | | | | | calling thread's unique integral ID, which is similar to AIX function of the same name. Bump __FreeBSD_version to note its introduction. Reviewed by: kib
* Implement the __pthread_map_stacks_exec() for libthr.kib2011-01-091-0/+2
| | | | | | | | | | | | Stack creation code is changed to call _rtld_get_stack_prot() to get the stack protection right. There is a race where thread is created during dlopen() of dso that requires executable stacks. Then, _rtld_get_stack_prot() may return PROT_READ | PROT_WRITE, but thread is still not linked into the thread list. In this case, the callback misses the thread stack, and rechecks the required protection afterward. Reviewed by: davidxu
* Revert revision 214007, I realized that MySQL wants to resolvedavidxu2010-10-201-4/+0
| | | | | | | a silly rwlock deadlock problem, the deadlock is caused by writer waiters, if a thread has already locked a reader lock, and wants to acquire another reader lock, it will be blocked by writer waiters, but we had already fixed it years ago.
* sort function name.davidxu2010-10-181-2/+2
|
* Add pthread_rwlockattr_setkind_np and pthread_rwlockattr_getkind_np, thedavidxu2010-10-181-0/+4
| | | | | | | | | functions set or get pthread_rwlock type, current supported types are: PTHREAD_RWLOCK_PREFER_READER_NP, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, PTHREAD_RWLOCK_PREFER_WRITER_NP, default is PTHREAD_RWLOCK_PREFER_WRITER_NONCECURSIVE_NP, this maintains binary compatible with old code.
* To support stack unwinding for cancellation points, add -fexceptions flagdavidxu2010-09-251-0/+2
| | | | | | | 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.
* Update symbol.davidxu2010-09-131-1/+1
|
* Add wrapper for setcontext() and swapcontext(), the wrappersdavidxu2010-08-241-0/+4
| | | | unblock SIGCANCEL which is needed by thread cancellation.
* On shared object unload, in __cxa_finalize, call and clear all installedkib2010-08-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | atexit and __cxa_atexit handlers that are either installed by unloaded dso, or points to the functions provided by the dso. Use _rtld_addr_phdr to locate segment information from the address of private variable belonging to the dso, supplied by crtstuff.c. Provide utility function __elf_phdr_match_addr to do the match of address against dso executable segment. Call back into libthr from __cxa_finalize using weak __pthread_cxa_finalize symbol to remove any atfork handler which function points into unloaded object. The rtld needs private __pthread_cxa_finalize symbol to not require resolution of the weak undefined symbol at initialization time. This cannot work, since rtld is relocated before sym_zero is set up. Idea by: kan Reviewed by: kan (previous version) MFC after: 3 weeks
* Remove extra new semaphore stubs, because libc already has them, anddavidxu2010-01-051-7/+0
| | | | | | ld can find the newest version which is default. Poked by: kan@
* Use umtx to implement process sharable semaphore, to make this work,davidxu2010-01-051-14/+7
| | | | | | | | | | | | | | | | | | | | | | now type sema_t is a structure which can be put in a shared memory area, and multiple processes can operate it concurrently. User can either use mmap(MAP_SHARED) + sem_init(pshared=1) or use sem_open() to initialize a shared semaphore. Named semaphore uses file system and is located in /tmp directory, and its file name is prefixed with 'SEMD', so now it is chroot or jail friendly. In simplist cases, both for named and un-named semaphore, userland code does not have to enter kernel to reduce/increase semaphore's count. The semaphore is designed to be crash-safe, it means even if an application is crashed in the middle of operating semaphore, the semaphore state is still safely recovered by later use, there is no waiter counter maintained by userland code. The main semaphore code is in libc and libthr only has some necessary stubs, this makes it possible that a non-threaded application can use semaphore without linking to thread library. Old semaphore implementation is kept libc to maintain binary compatibility. The kernel ksem API is no longer used in the new implemenation. Discussed on: threads@
* Make openat(2) a cancellation point.jilles2009-10-111-0/+5
| | | | | | | This is required by POSIX and matches open(2). Reviewed by: kib, jhb MFC after: 1 month
* Make pthread_cleanup_push() and pthread_cleanup_pop() as a pair of macros,davidxu2008-06-091-0/+2
| | | | | | | use stack space to keep cleanup information, this eliminates overhead of calling malloc() and free() in thread library. Discussed on: thread@
* Add POSIX pthread API pthread_getcpuclockid() to get a thread's cpudavidxu2008-03-221-0/+2
| | | | time clock id.
* Add more cpu affinity function's symbols.davidxu2008-03-051-0/+6
|
* Implement functions pthread_getaffinity_np and pthread_setaffinity_np todavidxu2008-03-031-1/+3
| | | | get and set thread's cpu affinity mask.
* Yet another pointy hat: when I zapped FBSDprivate_1.1, I forgot to movedes2008-02-061-0/+1
| | | | its contents to FBSDprivate_1.0.
* Convert pthread.map to the format expected by version_gen.awk, and modifydes2008-02-061-10/+1
| | | | | | the Makefile accordingly; libthr now explicitly uses libc's Versions.def. MFC after: 2 weeks
* Remove incorrectly added FBSDprivate_1.1 namespace, and move symbols whichdes2008-02-061-12/+4
| | | | are new in FreeBSD 8 to the appropriate namespace.
* Per discussion on -threads, rename _islocked_np() to _isowned_np().des2008-02-061-2/+2
|
* Add pthread_mutex_islocked_np(), a cheap way to verify that a mutex isdes2008-02-031-0/+15
| | | | | | | locked. This is intended primarily to support the userland equivalent of the various *_ASSERT_LOCKED() macros we have in the kernel. MFC after: 2 weeks
* Remove vfork() overloading, it is no longer needed.davidxu2007-12-201-2/+0
|
* 1. Add function pthread_mutex_setspinloops_np to turn a mutex's spindavidxu2007-12-141-0/+8
| | | | | | | | loop count. 2. Add function pthread_mutex_setyieldloops_np to turn a mutex's yield loop count. 3. Make environment variables PTHREAD_SPINLOOPS and PTHREAD_YIELDLOOPS to be only used for turnning PTHREAD_MUTEX_ADAPTIVE_NP mutex.
* Add _pthread_mutex_init_calloc_cb() to libthr and libkse, so that malloc(3)jasone2007-11-271-0/+1
| | | | | (part of libc) can use pthreads mutexes without causing infinite recursion during initialization.
* Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.deischen2007-05-131-374/+0
| | | | | | | | | | 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.
* Use C comments since we now preprocess these files with CPP.deischen2007-04-291-11/+14
|
* 1. Don't override underscore version of aio_suspend(), system(),davidxu2006-07-251-22/+22
| | | | | | | | | | wait(), waitpid() and usleep(), they are internal versions and should not be cancellation points. 2. Make wait3() as a cancellation point. 3. Move raise() and pause() into file thr_sig.c. 4. Add functions _sigsuspend, _sigwait, _sigtimedwait and _sigwaitinfo, remove SIGCANCEL bit in wait-set for those functions, the signal is used internally to implement thread cancellation.
* Add symbol versions: FBSD_1.0 and FBSDprivate.davidxu2006-05-111-3/+387
|
* WARNS level 4 cleanup.davidxu2006-04-041-13/+8
|
* Remove mqueue and timer, now they are in librt.davidxu2006-03-081-8/+0
|
* 1. Add SIGEV_THREAD notification for mq_notify.davidxu2006-01-041-0/+4
| | | | | 2. Reuse current timer code and abstract some common code to to support both timer and mqueue.
* Follow the mistake in libpthread, the first version name in libpthreaddavidxu2005-12-211-1/+1
| | | | | | is LIBTHREAD_1_0, but really it should be LIBPTHREAD_1_0. Fix it so libmap.conf works again (it was broken by recent versioning code in rtld_elf).
* Add code to handle timer_delete(). The timer wrapper code is completelydavidxu2005-11-011-0/+2
| | | | | | rewritten, now timers created with same sigev_notify_attributes will run in same thread, this allows user to organize which timers can run in same thread to save some thread resource.
* Add timer_create wrapper.davidxu2005-10-301-0/+2
|
* Put pthread_condattr_init sorted order.davidxu2005-10-251-1/+1
|
* Export following functions:davidxu2005-10-241-0/+6
| | | | | | | | | _pthread_mutexattr_getpshared _pthread_mutexattr_setpshared pthread_condattr_getpshared pthread_condattr_setpshared pthread_mutexattr_getpshared pthread_mutexattr_setpshared
* Sort function names.davidxu2005-10-041-2/+2
|
* Add function pthread_timedjoin_np, the function is similar with pthread_joindavidxu2005-10-041-0/+2
| | | | | except the function will return ETIMEDOUT if target thread does not exit before specified absolute time passes.
* Add usleep to the map files.deischen2005-08-031-0/+2
| | | | Noticed by: davidxu
* Add debugger event reporting support, current only TD_CREATE and TD_DEATHdavidxu2005-04-121-5/+10
| | | | events are reported.
* Export pthread_condattr_getclock, pthread_condattr_setclock.davidxu2005-04-031-0/+2
|
* Import my recent 1:1 threading working. some features improved includes:davidxu2005-04-021-0/+365
1. fast simple type mutex. 2. __thread tls works. 3. asynchronous cancellation works ( using signal ). 4. thread synchronization is fully based on umtx, mainly, condition variable and other synchronization objects were rewritten by using umtx directly. those objects can be shared between processes via shared memory, it has to change ABI which does not happen yet. 5. default stack size is increased to 1M on 32 bits platform, 2M for 64 bits platform. As the result, some mysql super-smack benchmarks show performance is improved massivly. Okayed by: jeff, mtm, rwatson, scottl
OpenPOWER on IntegriCloud