Andreas Kling
4a8683ea68
Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t
...
This patch implements a simple version of the futex (fast userspace
mutex) API in the kernel and uses it to make the pthread_cond_t API's
block instead of busily sched_yield().
An arbitrary userspace address is passed to the kernel as a "token"
that identifies the futex and you can then FUTEX_WAIT and FUTEX_WAKE
that specific userspace address.
FUTEX_WAIT corresponds to pthread_cond_wait() and FUTEX_WAKE is used
for pthread_cond_signal() and pthread_cond_broadcast().
I'm pretty sure I'm missing something in this implementation, but it's
hopefully okay for a start. :^)
2019-12-25 23:54:06 +01:00
..
2019-12-25 13:35:57 +01:00
2019-12-19 19:15:27 +01:00
2019-12-24 23:14:14 +01:00
2019-11-27 14:06:24 +01:00
2019-12-22 14:54:37 +01:00
2019-12-20 20:02:45 +01:00
2019-12-25 22:41:34 +01:00
2019-08-06 21:09:24 +02:00
2019-11-03 13:11:43 +01:00
2019-11-26 12:54:33 +01:00
2019-11-26 12:54:33 +01:00
2019-12-16 15:33:42 +01:00
2019-11-04 14:03:14 +01:00
2019-11-04 14:03:14 +01:00
2019-10-18 15:58:06 +02:00
2019-10-18 15:58:06 +02:00
2019-08-18 07:40:02 +02:00
2019-10-07 10:11:39 +02:00
2019-08-11 08:22:42 +02:00
2019-12-22 12:37:58 +01:00
2019-12-25 22:41:34 +01:00
2019-12-25 22:41:34 +01:00
2019-09-06 15:36:54 +02:00
2019-12-15 21:29:26 +01:00
2019-09-06 15:36:54 +02:00
2019-11-27 14:06:24 +01:00
2019-12-20 22:59:11 +01:00
2019-12-24 01:28:38 +01:00
2019-11-28 21:30:20 +01:00
2019-11-23 17:27:09 +01:00
2019-12-01 16:02:58 +01:00
2019-12-01 12:07:43 +01:00
2019-12-24 02:19:59 +01:00
2019-12-20 21:01:30 +01:00
2019-11-28 21:30:20 +01:00
2019-11-28 21:07:22 +01:00
2019-08-14 06:28:53 +02:00
2019-08-14 06:28:53 +02:00
2019-12-25 23:54:06 +01:00
2019-12-25 23:54:06 +01:00
2019-11-04 14:03:14 +01:00
2019-12-12 21:59:47 +01:00
2019-12-12 21:59:47 +01:00
2019-09-28 13:59:49 +02:00
2019-12-25 15:19:13 +01:00
2019-12-22 12:37:58 +01:00
2019-12-22 12:37:58 +01:00
2019-12-19 19:15:27 +01:00
2019-12-09 20:06:47 +01:00
2019-12-20 21:03:32 +01:00
2019-08-11 16:30:43 +02:00
2019-11-12 10:26:50 +01:00
2019-12-15 12:47:53 +01:00
2019-12-25 23:54:06 +01:00
2019-11-29 21:31:17 +01:00
2019-12-25 22:41:34 +01:00
2019-12-22 12:38:01 +01:00
2019-12-25 23:54:06 +01:00
2019-12-22 12:38:01 +01:00
2019-12-22 12:38:01 +01:00