Number of threads to wake is now a boolean, which means it's one or all.
Call to assert_wait() has been added before thread_suspend(). The scan
for vm_objects has been removed and recursion in futex_wake() has been
removed and code rewriten.
There are problems however, futex_wait() test on the
On Thu, Dec 26, 2013 at 02:30:10PM +0100, Marin Ramesa wrote:
+ futex-address = address;
+ futex-num_futexed_threads = 0;
+ futex-next_futex = NULL;
+ futex-prev_futex = (table-futex_elements[prev_hash_val]);
+ futex-prev_futex-next_futex = futex;
+ *futex-map =
On Thu, Dec 26, 2013 at 02:58:01PM +0100, Richard Braun wrote:
I know this isn't the traditional way to do it in Mach, but please,
extensively document the API in the header, e.g. as it's done for the
slab allocator. I also suggest moving everything not public (such as
Actually, kern/rbtree.h
On 12/26/2013 02:58:01 PM, Richard Braun wrote:
Why __builtin_malloc and __builtin_free ??
I get segfaults in kalloc(). I don't know what I'm doing wrong.
+ if (futex-num_futexed_threads == 128)
+ return FUTEX_RESOURCE_SHORTAGE;
I assume this
On Thu, Dec 26, 2013 at 03:15:24PM +0100, Marin Ramesa wrote:
I get segfaults in kalloc(). I don't know what I'm doing wrong.
Show us how you use it.
--
Richard Braun
On 12/26/2013 03:25:11 PM, Richard Braun wrote:
On Thu, Dec 26, 2013 at 03:15:24PM +0100, Marin Ramesa wrote:
I get segfaults in kalloc(). I don't know what I'm doing wrong.
Show us how you use it.
futex-futexed_threads =
(thread_t)kalloc((futex-num_futexed_threads+1)*sizeof(struct
On Thu, Dec 26, 2013 at 03:51:30PM +0100, Marin Ramesa wrote:
futex-futexed_threads =
(thread_t)kalloc((futex-num_futexed_threads+1)*sizeof(struct
thread));
When futexed_threads is a pointer to struct thread.
Why are you allocating a thread structure ??
I strongly suspect kalloc does what