Age | Commit message (Collapse) | Author |
|
|
|
The concept of code_write_permission is used by tracing as well
and is not specific to code_ix.
|
|
Make sure that the the currently running thread has the lock,
not only that that some thread has the lock.
|
|
"is_blocking" always returns true on non-smp
|
|
Rename lock_code_ix as seize_code_write_permission. Don't want to call
it a "lock" as it can be held between schedulings and different threads
and is not managed by lock checker.
Rename "activate" staging as "commit" staging. Why not be consistent
and use git terminology all the way.
|
|
Make for simpler code when we just can block threads and continue
without having to release code_ix lock and repeat code lookups to
avoid race.
|
|
Renamed it export_staging_lock and made change it to ordinary mutex.
|
|
Activation of staged code is scheduled for a later moment when
all schedulers have done a full memory barrier. This allow
them to read active code index while executing without any
memory barriers at all.
|
|
This will prevent blocking entrire schedulers in the rare case when
several processes are racing to load/upgrade/delete/purge code.
|
|
Move implementation from beam_load into new file code_ix.c and module.c
and make some function inline.
|