You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a draft(I will keep updating it) for new concurrency API. Everything which is not marked as [OPTIONAL] is required currently. OPTIONAL means that I won't implement it.
stackful? -- assembly + m:n threads scheduler?
stackless? -- [cps](see nim-lang/RFCs#295)? Do we need all of them? Or based on current closure based on implementation(need cancel operations and a multi-threads scheduler)
This is a draft(I will keep updating it) for new concurrency API. Everything which is not marked as
[OPTIONAL]
is required currently.OPTIONAL
means that I won't implement it.Sync primitives
Executors
Atomic
can only be moved and refactorAtomic
AtomicSharedPtr
andAtomicConstPtr
SharedLock
/ReadWriteLock
template withLock(varargs[Lock], untyped)
accepts arbitrary locks automaticallyCondition variables
(see [std/locks]close #7998(complete condition variables) nim-lang/Nim#17711)timedWait
toCondition variables
Channel
add open and close supportChannel
add select supportLatch
Barrier
Semaphore
template once
(see closes #8895 add std/once nim-lang/Nim#16192),template onceThread
Complete Thread API
Thread
can only be moved(see make the copy operation of Thread an error nim-lang/Nim#17734)proc detachThread(Thread)
operation(in contract tojoinThread
)proc getThreadId(Thread)
(required byisJoinable
)proc isJoinable(Thread)
(required byJThread
)JThread
(based ondestructors
)Thread Pool
Context
'msec
,'sec
,'minute,
'hour
support forstd/times
(see custom integer literals nim-lang/Nim#17489)proc withDeadLine
proc withTimeout
Event loop
io_uring
module(see async: we needio_uring
for Nim #592) [OPTIONAL]Coroutine [OPTIONAL]
stackful? -- assembly + m:n threads scheduler?
stackless? -- [cps](see nim-lang/RFCs#295)? Do we need all of them? Or based on current closure based on implementation(need cancel operations and a multi-threads scheduler)
Related materials
The text was updated successfully, but these errors were encountered: