Tobias Brunner
efbb5e8c57
Ensure thread IDs always start with 1 even if the library is reused
...
Within the Android App the library stays loaded in memory and is just
initialized/deinitialized with each connection, the static thread
counter would continuously increase without this patch.
2012-08-13 11:28:08 +02:00
Martin Willi
a63192479d
If _POSIX_SPIN_LOCKS is defined as -1, it is not available
2012-08-10 17:02:46 +02:00
Tobias Brunner
decc467a4f
Implemented recursive mutex without thread-specific counter
2012-08-03 11:30:18 +02:00
Tobias Brunner
920f29e7d5
Use a single thread-specific value for our custom rwlock_t implementation
...
The pthread implementation on Android currently only supports 64
different thread-specific values per process, which we hit easily when
every rwlock_t requires one.
2012-08-03 11:30:18 +02:00
Tobias Brunner
2b19dd3502
Properly cleanup thread-local values for the threads destroying thread_value_t objects
2012-07-12 09:43:27 +02:00
Tobias Brunner
12fa85c664
Added wrapper for POSIX spin locks
2012-07-04 10:13:49 +02:00
Tobias Brunner
4d21000cf7
Added recursive read_lock support to our own implementation of rwlock_t.
2012-05-02 14:45:38 +02:00
Tobias Brunner
8f6c13271c
Added a wrapper class around POSIX semaphores.
2012-05-02 14:45:37 +02:00
Tobias Brunner
17e3a92661
Fix gettid() on Android, which is defined in unistd.h there.
2012-01-12 11:08:22 +01:00
Tobias Brunner
66f16d9629
Use native gettid() if available (which is the case on Android).
2012-01-10 18:31:33 +01:00
Tobias Brunner
c17f6f96e2
Log native thread ID when a thread is created.
...
If possible gettid() is used, otherwise pthread_self() is logged (which is
not completely portable, but seems to work on most supported platforms).
2011-12-16 16:44:38 +01:00
Martin Willi
005b02cbe3
Create a dummy pthread key for value "0", as some buggy PKCS#11 libraries mangle it
2011-12-07 13:42:07 +01:00
Tobias Brunner
c8541efe70
Migrated thread_t to INIT/METHOD macros.
2011-10-03 15:54:36 +02:00
Tobias Brunner
f5808078cb
Migrated mutex_t to INIT/METHOD macros.
2011-10-03 15:45:17 +02:00
Tobias Brunner
7fa43a9036
Migrated rwlock_t to INIT/METHOD macros.
2011-10-03 15:31:04 +02:00
Tobias Brunner
242f7c857f
Migrated thread_value_t to INIT/METHOD macros.
2011-10-03 14:57:07 +02:00
Andreas Steffen
51f259a82d
id of non-registered threads defaults to 0
2011-05-06 06:22:19 +02:00
Martin Willi
091d178060
Option to skip slow addr2line resolution in leak-detective
2010-05-20 17:37:18 +02:00
Tobias Brunner
726c0ae9d3
We have to rename thread_create on Mac OS X because it conflicts with a syscall.
2010-04-29 14:52:20 +02:00
Tobias Brunner
361f416d2c
The mutex of a thread has to be locked when destroying it.
2010-04-29 13:30:51 +02:00
Tobias Brunner
8b0e09103b
Adding DBG_LIB to all calls of libstrongswan's version of DBG*.
2010-04-06 12:47:40 +02:00
Andreas Steffen
b7fd2ea76c
corrected captions
2010-02-01 12:44:44 +01:00
Tobias Brunner
85202e8795
Added a workaround for the missing pthread_cancel on Android.
2009-12-23 17:03:42 +01:00
Tobias Brunner
b2944d71ca
Use pthread_cond_timedwait_monotonic on Android.
2009-12-23 17:03:41 +01:00
Tobias Brunner
4ec2c94b5d
Readding changes that got lost during refactoring/rebasing.
2009-12-23 17:03:41 +01:00
Tobias Brunner
4a5a5dd290
Using the thread wrapper in charon, libstrongswan and their plugins.
2009-12-23 17:03:41 +01:00
Tobias Brunner
c48eea9203
Adding an object-oriented wrapper for thread-specific values.
2009-12-23 17:02:26 +01:00
Tobias Brunner
0d5c6a28d5
Adding an object-oriented wrapper for threads.
2009-12-23 17:02:26 +01:00
Tobias Brunner
866dc0134a
Check for pthread_condattr_init added to configure script.
2009-12-23 17:02:25 +01:00
Tobias Brunner
5fe538504e
Moved implementation of condvar_t to mutex.c because it requires access to private_mutex_t.
2009-12-23 17:02:25 +01:00
Tobias Brunner
eba64cef41
Separated the public interfaces of the threading primitives.
2009-12-23 17:01:53 +01:00
Tobias Brunner
f36143b0ba
Implemented a read-write lock using only mutex_t and condvar_t (in case the pthread_rwlock_* group of functions is not available).
2009-12-23 17:01:30 +01:00
Tobias Brunner
b1f35d0695
Threading primitives separated.
2009-12-23 17:01:30 +01:00
Tobias Brunner
14f7091280
Moved mutex.c to a separate folder in order to cleanly wrap other threading primitives (and utils/mutex.h is now threading.h).
2009-12-23 17:00:58 +01:00