Changeset 45c8eea in mainline for uspace/lib/c/generic/thread
- Timestamp:
- 2018-11-11T15:47:39Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f4cb6c5f
- Parents:
- 269bc459
- git-author:
- Jakub Jermar <jakub@…> (2018-11-10 17:49:44)
- git-committer:
- Jakub Jermar <jakub@…> (2018-11-11 15:47:39)
- Location:
- uspace/lib/c/generic/thread
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/thread/fibril.c
r269bc459 r45c8eea 87 87 88 88 /* This futex serializes access to global data. */ 89 static futex_t fibril_futex = FUTEX_INITIALIZER;89 static futex_t fibril_futex; 90 90 static futex_t ready_semaphore; 91 91 static long ready_st_count; … … 95 95 static LIST_INITIALIZE(timeout_list); 96 96 97 static futex_t ipc_lists_futex = FUTEX_INITIALIZER;97 static futex_t ipc_lists_futex; 98 98 static LIST_INITIALIZE(ipc_waiter_list); 99 99 static LIST_INITIALIZE(ipc_buffer_list); … … 796 796 if (!multithreaded) { 797 797 _ready_debug_check(); 798 futex_initialize(&ready_semaphore, ready_st_count); 798 if (futex_initialize(&ready_semaphore, ready_st_count) != EOK) 799 abort(); 799 800 multithreaded = true; 800 801 } … … 861 862 void __fibrils_init(void) 862 863 { 864 if (futex_initialize(&fibril_futex, 1) != EOK) 865 abort(); 866 if (futex_initialize(&ipc_lists_futex, 1) != EOK) 867 abort(); 868 863 869 /* 864 870 * We allow a fixed, small amount of parallelism for IPC reads, but -
uspace/lib/c/generic/thread/fibril_synch.c
r269bc459 r45c8eea 51 51 #include "../private/futex.h" 52 52 53 voidfibril_rmutex_initialize(fibril_rmutex_t *m)54 { 55 futex_initialize(&m->futex, 1);53 errno_t fibril_rmutex_initialize(fibril_rmutex_t *m) 54 { 55 return futex_initialize(&m->futex, 1); 56 56 } 57 57 … … 90 90 static fibril_local bool deadlocked = false; 91 91 92 static futex_t fibril_synch_futex = FUTEX_INITIALIZER; 92 static futex_t fibril_synch_futex; 93 94 void __fibril_synch_init(void) 95 { 96 if (futex_initialize(&fibril_synch_futex, 1) != EOK) 97 abort(); 98 } 93 99 94 100 typedef struct { -
uspace/lib/c/generic/thread/futex.c
r269bc459 r45c8eea 49 49 * @param val Initialization value. 50 50 * 51 * @return Error code. 51 52 */ 52 voidfutex_initialize(futex_t *futex, int val)53 errno_t futex_initialize(futex_t *futex, int val) 53 54 { 54 55 atomic_store_explicit(&futex->val, val, memory_order_relaxed); 55 atomic_store_explicit(&futex->lock, 0, memory_order_relaxed);56 56 futex->whandle = CAP_NIL; 57 return futex_allocate_waitq(futex); 57 58 } 58 59 -
uspace/lib/c/generic/thread/mpsc.c
r269bc459 r45c8eea 80 80 } 81 81 82 if (fibril_rmutex_initialize(&q->t_lock) != EOK) { 83 free(q); 84 free(n); 85 free(c); 86 return NULL; 87 } 88 82 89 q->elem_size = elem_size; 83 fibril_rmutex_initialize(&q->t_lock);84 90 q->head = q->tail = n; 85 91 q->close_node = c;
Note:
See TracChangeset
for help on using the changeset viewer.