タグ

rubyとforkに関するclavierのブックマーク (3)

  • APIデザインケーススタディの fork と async-signal-safe の記述 : 革命の日々 その2

    最近Rubyの著名デベロッパのakrさんがAPIデザインケーススタディという書籍を出版された。隙を見ては読んでいるのだけどこれが激烈に面白い。 役にも立たない一般原則とかいっさいすっ飛ばし、実例実例、また実例である。そしてすべての例がOSの制限やら過去との互換性やらいろいろな都合でトレードオフを勘案しながら取りうる選択肢のなかでのベストを見つけていくという題材になっているので話がどれもこれもが超面白い みんな買おう。 それはさておき、一点だけちょっと微妙な記述をみつけたのでメモっておく。 P128からはじまる Column async-signal-safe関数 だけど また、実際のところ、子プロセスでasync-signal-safeでない関数を使用するのは、珍しいことではありませんでした。たとえば、ネットワークサーバの作り方の一つとして、クライアントからの接続のたびにforkを行い、子

    APIデザインケーススタディの fork と async-signal-safe の記述 : 革命の日々 その2
  • なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 / Jesse Storimer - スペクトラム

    #naruhounix を読んだ。 正直「プロセス?あれでしょ、なんか動くやつ。」というレベルだったので非常に勉強になった。 Rubyで書かれているのも、余計なこと(Cの文法とか例外処理とか)がついてこなくて理解しやすい。 書き方はいいからイメージが知りたいんや!というタイプの方におすすめ。 逆にRubyの余計なこと(このバージョンでは修正済みとか)がついてくるのでRubyist寄りであることはいなめない。 プロセスをforkしてもリソースは同じみたいなところはポインタ的な解釈。 あとfork後ちょっとでもメモリの内容が変わったら全コピーだと思ってたけど全然違ってオブジェクト単位?(このへんあやふや)というか当に変わった部分だけコピーされるみたいだ。 例えばRailsアプリとかは立ち上がる際に大量のフレームワークのコードとアプリケーションのコードを読み込んでいるので数秒とかかかる。 しか

    なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 / Jesse Storimer - スペクトラム
  • なるほどUnixプロセス ー Rubyで学ぶUnixの基礎 - ヽ(´・肉・`)ノログ

    なるほどUnixプロセス ー Rubyで学ぶUnixの基礎 モチベーション ruby weekly や The Pragmatic Bookshelf でたまに見かけてどういうなのか気になっていた. Process.daemon がないころ(1.8 のころ),バックグラウンドで動作するプログラムを作ろうとして,失敗していた. ググった所,fork を 2 回するといいらしい,とか書いてあったのでそのようにして動作させたものの,いずれちゃんとした意味を知りたいなあと思っていた. 日語訳者が角谷さんと島田さんだった わかるようになった Errno::EMFILE: Too many open files というエラーが出たとき,何が起きていて,どういう対処法があるか. Ruby プログラム実行中に $ ps aux とした時の表示を niku 57441 0.0 0.1 2457972 6

  • 1