I'm kneedeep in the Shuffler code again, slightly reworking it,
fixing some bugs along the way, but also trying to make sure I don't
introduce new ones.
The following issue comes up:
If I have a struct pike_string with a shared string assigned to it,
and I take the value of the str member because I want to access the bytes,
how long is this address guaranteed to stay valid?
E.g. I see in file.c that we take the str->str value, then
do THREADS_ALLOW() and subsequently call fd_write().
Which seems to imply that as long as the pike_string struct we took
the address from is still alive, the address of the string it points
will not change, even if other pike threads run in the meantime?
--
Stephen.