From eeed5a39757f4be1d31fc37a6914c49f7526bc67 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Tue, 25 Aug 2015 23:46:11 -0400 Subject: [PATCH] Added some threading notes --- TODO | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/TODO b/TODO index ea1b7f8d..62defea9 100644 --- a/TODO +++ b/TODO @@ -248,3 +248,8 @@ Limitations: - Windows "events" are not available in linux/pthreads. how to actually implement this behavior?? may be able to use condition variables. read up on that and update above to use them (so spec above can more closely follow likely implementation) +more thoughts: + - instead of using single lock across all threads, which could involve a lot of contention, think about locking each thread's var instead. the var would only be locked by the thread or by another thread when GC is requested. this should minimize contention, and may allow pthread mutexes to be acceptable, since they generally use a fast lock (such as futex on linux) when there is no contention. + - sucks to have to use a lock (even a futex) whenever calling a C function primitive. Is there any way at all around it though? + - have to be able to handle forwarding pointers in the case where a C function prim was blocking while GC was being performed, and missed it +