Skip to content

Benabik/ruby-concurrent-gc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby with Concurrent GC

Ruby Language

See [README] 1 for information on Ruby itself.

This is built on [version 1.9.3-p429] 2.

Concurrent GC Plan

[x] update init_heap()

  • initialize shared memory page [x] update gc_newobj()
  • check freelist: do we need to GC (low)?
  • can we go concurrent? if so: call concurrent_garbage_collect()
  • always return new object [x] add concurrent_garbage_collect()
  • same as garbage_collect except only collects a freelist into shared memory
  1. disallow to go concurrent
  2. prepare shared memory
  3. call fork(). if child: call child_garbage_collect(), else: return [x] add child_garbage_collect()
  • actions as child process
  1. call mark
  2. update memory page
  3. signal changes
  4. exit [x] add signal handler for changes
  • actions as parent process
  1. merge changes
  2. allow to go concurrent again

About

Ruby Interpreter with Concurrent GC

Resources

License

Unknown, Unknown licenses found

Licenses found

Unknown
COPYING
Unknown
COPYING.ja

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 59.0%
  • Ruby 40.5%
  • Emacs Lisp 0.2%
  • C++ 0.1%
  • Tcl 0.1%
  • Other 0.1%