Angus Gratton
89407a5770
pthread: Use spinlock not semaphore mutex to protect TLS key list
2017-12-01 14:28:07 +11:00
Amey Inamdar
edb2400742
pthread: Added support for pthread condition variables
...
This is required for std::condition_variable support
Signed-off-by: Amey Inamdar <amey.inamdar@gmail.com>
2017-11-23 11:26:51 +08:00
Alexey Gerenkov
7ce945a9de
pthread: Fixes memory leaks and stack overflow in tests
...
Also this commit replaces FreeRTOS list used for pthread internals
with simple one from rom/queue.h
2017-11-17 16:57:33 +03:00
Mahavir Jain
158ecdcfd5
pthread: Fix pthread_once to use atomic compare and set
...
Earlier recursive mutex was being used for this but since
SCOMPARE1 is already being saved/restored during context
switch, atomic compare and set can be used for this.
Signed-off-by: Mahavir Jain <mahavir@espressif.com>
2017-11-07 14:28:43 +05:30
Kedar Sovani
07992b08e8
[pthread] Perform init_routine execution outside of the mutex
...
The mutex is common across all the threads. It needn't be held across
the init_routine() call as long as the 'once' behaviour is guaranteed
Saw a deadlock case, where init_routine of one thread was waiting for
the completion of init_routine in another thread.
t2: wait for command
t1: pthread_once:
lock once_mux
init_routine:
inform thread t2
wait for signal from t2
t2: received command
pthread_once
lock once_mux (already held by t1)
---- Deadlock ----
2017-10-25 13:57:39 +05:30
Angus Gratton
3f4c8f7174
pthreads local storage: add test for unique keys
2017-10-17 15:29:25 +08:00
Angus Gratton
69e92ee320
unit tests: If heap tracing is enabled in sdkconfig, leak trace each test
2017-10-17 15:29:25 +08:00
Angus Gratton
86c89ff169
pthread: Add support for pthread thread local storage
...
Refactors LWIP to use this for the LWIP thread local semaphore
2017-10-17 14:46:08 +08:00
Alexey Gerenkov
5795ccc806
freertos: Fixes deadlock in pthread_once for init_routines calling pthread_once
2017-10-01 19:52:48 +03:00
Alexey Gerenkov
54a529f596
freertos: Fixes hangup upon pthread_join on finished thread
2017-10-01 19:52:48 +03:00
Alexey Gerenkov
5dea0fca15
esp_pthread_init constructor attr was removed
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
5094965e98
According to comments
2017-09-06 10:30:23 +08:00
Ivan Grokhotkov
e3b86e7bdb
pthread: handle statically initialized mutexes
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
20942421c3
According to review comments
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
8859dab10c
Cleanup
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
bf8ff8c98b
1) Thread detach functionality added
...
2) Recursive mutexes support
3) C++ test updated
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
c631c6b358
1) Mux API was added
...
2) C++ test for threading and mux functions
2017-09-06 10:30:23 +08:00
Alexey Gerenkov
0b09c7006d
pthread: Initial version of thread API
2017-09-06 10:30:23 +08:00