@mflatt I’ve thought about possibility, but it seems difficult, because I don’t think we want to expose pthreads directly to the “thread” layer
currently, the minimum set of features that @spall has used is: creating chez threads, chez-level locking, chez-level condition variables, and some access to information about currently-running chez-level threads
That sounds appropriate to me, especially if it’s functionality that any runtime system would have to include to support futures, similar to the way the core provides an engine API to implement threads at the “thread” layer
How hard is it intended to be to change the API provided by the core to the various linklet-implemented layers?
for example, the Chez condition variable API is a bit odd, I think, and might not be what we want for some other runtime
but it’s hard to be sure now, and so the easiest thing is to just expose it directly instead of abstracting prematurely
If it’s going to be problematic to change, though, then we should figure out a reasonable abstraction ahead of time
I don’t think that needs to be an especially stable API
>currently, the minimum set of features that @spall has used is: creating chez threads, chez-level locking, chez-level condition variables
Additionally, the 2 primitives chez provides. And
exposing pthreads would also make it potentially-possible to implement places at the “thread” layer
It sounds to me like this conversation is suggesting we move futures to the thread layer?
@spall yes
Alright I will start on that then.
We can talk at our scheduled meeting today about plans for that
ok
does racket have a form like meta-cond?
or will racket always be “threaded”?
pthreaded i mean
@spall Racket will always have access to those primtives, but the “cs” layer will have tohave fake definitions when not threaded
ah ok thanks