[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Design hole in nptl (and more general in POSIX threads)



Advanced (probably every) garbage collector needs to scan threads stacks
for pointers to traced heap being kept in local variable spaces of
procedures in suspended threads. While suspending of other threads is
possible in portable way (thanks to this list for help) it is not
possible, in portable way, to get exact position of active portion of
threads stack. Only way (I know of) goes through pthread_getattr_np()
call which gives only partial information - one needs stack pointer
(obtainable only through oh-so-portable pthread debug interface and only
after hacking deeply nested include files for exact info on position of
stack pointer in greglist structure.

Meaning, it is not possible to implement this fundamental feature of
advanced high-level langugages in portable way.

Are there plans to fix this somewhere before greglist? :)

Thanks,
dd





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]