The problem with "the second option" is that it represents a radically different threading model than what Pike is currently using. That means that normal threaded programs using thread_create() would still not be multi-cpu enabled.
Essentially, we would have to design a new API for creating 'threads' and inter-thread communication. If we write this API right, it could be used to communicate between:
o threads running in the same interpreter o threads running in separate interpreters o threads running in separate processes o threads running on separate machines
Personally, I don't need the headache of designing this API :)
/ Fredrik (Naranek) Hubinette (Real Build Master)
Previous text:
2004-02-01 21:47: Subject: Re: Default backend and thread backends?
Sorry, maybe not totally clear. What I meant was that you added locks to existing global data instead of redesigning things to avoid global storage to begin with (which is what you call the second option in 11295426).
/ Jonas Walldén