Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2021-06-20 - Ractor 以外でも Proc#isolate を無理やり使う #131

Closed
kachick opened this issue Jun 20, 2021 · 0 comments
Closed

2021-06-20 - Ractor 以外でも Proc#isolate を無理やり使う #131

kachick opened this issue Jun 20, 2021 · 0 comments

Comments

@kachick
Copy link
Owner

kachick commented Jun 20, 2021

Ractor は kachick/ruby-ulid#120 でちょっと触ってみたぐらいなんだけど、 isolate の挙動はローカル変数にすらアクセス出来なくなる時点で普通の Proc と全然扱いが変わる認識でいる。
それは並行性を扱う時には都合の良い話なんだろうなぁぐらいの雑な理解をしているんだけど、ということは今の内から Proc を使う時には isolate に出来るよう意識しておくと良いのかな?と思った。

ということで、Ractor と関係ないところでも isolate に出来るような gem を作って置いた。 kachick/proc-isolation#2 がちょっと詰まって一旦放置してるので、何一つオリジナルな実装をしていない。
Ruby のC拡張を書くこと自体が初めてだったので、手習いというか環境構築を知る的な意味ではむしろ良かったかも知れない。
10日ぐらい前に大体作ってあったんだけど、色々ドタバタしてて仕上げるのを忘れていた。

C拡張の作り方っぽいところは https://github.com/ruby/ruby/blob/72a4e1d3bbbdfff71ec2c6b2ddb3b9323193cacd/doc/extension.ja.rdoc, https://github.com/ruby/ruby/tree/72a4e1d3bbbdfff71ec2c6b2ddb3b9323193cacd/ext/monitor, https://github.com/bcrypt-ruby/bcrypt-ruby 辺りを参考にした。 https://github.com/rake-compiler/rake-compiler というのがなんとなくデファクトっぽい感じもしたので使ってみたけど、どうせ複雑なことしないのだから全く使わないでやってみたほうが良かったかなーとは思っている。

#75 で作った https://github.com/kachick/ruby_library_template にこの辺を突っ込んでおくかはちょっと迷っている。別にC拡張今後書く予定無いしなぁ・・・

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant