builderscon Tokyo 2017で圧倒的な敗北をもらって来た

8/4〜8/6にかけてbuilderscon Tokyo 2017にスピーカーとして参加させていただきました。当日話した資料については下記の通りです。 今回はmrubyの言語そのものの魅力と、僕たちが実装し、運用している内容について紹介させていただきました。 発表後、いくつかの質問や、Twitterでも質問をいただきすごく嬉しかったです。 一方で、今回の登壇は自分の現実をいい意味でフィードバックもらえる機会だったなと感じています。 具体的には当日全く集客ができませんでした。 会場としてはメインホールをいただいており、この上ない状況だったのですが、自身の実力がたりず、会場の10分の1も埋められていなかったのではないかなと思います。 こればっかりは当日にはどうすることもできない話ではあるのですが、つまるところ、その前段で、日常的にいかにアウトプットして、世界にインパクトを与え続けられているということが実践できてないのだなと感じました。 これまで積んで来たもので、それなりのステージに立てるようにはなって来たものの、まだまだ広く認められるというレベルには全く至っていないので、胡座をかくことなく、コードでも文章でもアウトプットし続けなければならいと身が引き締まりました。 僕はベストスピーカーの土俵にすら立てなかったので、また来年、強くなって帰ってこようと思います。 ここまでがスピーカーとしての話で、参加者としては、海外からのゲストスピーカーを始め、非常に幅広いテーマでこのカンファレンスでしか聞けない!!!という話しが多くあり非常に楽しく過ごすことができました。 個人的な話にはなるのですが、ペパボの縁がありつつも、会えそうで会えなかったmizzyさんとお会いし、さらには晩御飯をご馳走になったり、現在進行形で執筆を進めさせていただいている技術評論社の@inaoさんにダイレクトに原稿の催促をいただくなど、東京のカンファレンスだからこそ味わえる体験をさせていただきました。 ついに会ってしまった2人…! pic.twitter.com/y3Lzjyh3Wr — Shinya Tsunematsu (@tnmt) August 3,

More

スレッドセーフなmruby-signal-threadを書いた

最近仕事でmrubyを触り始めて、だいぶC言語に触れ合う時間が増えてきたので、@matsumotoryのススメもあって、mgemを書きました。 なぜ作ったのか mrubyには既にmruby-signalというCRubyのクローン実装のmgemも存在するのですが、マルチスレッドでの動作を考えた場合に、グローバル変数にmrb_stateを持つことから、意図しない動作となるケースがあるため再実装しました。シングルプロセス、シングルスレッドで使うにはmruby-signalで十分なので、今回はコントリビュートではなく別実装とした意図があります。 使い方 シンプルにこのような実装にしました。mruby-threadにシグナルを指定可能にしたようなイメージが近いと思います。 工夫 実装するにあたり工夫が必要だったのは、下記のコードです。 今回の実装はSignalThread#trapが実行されるごとに、mruby-threadを利用して、そのシグナルを処理する専用のスレッドを起動し、スレッドでsigwaitするような実装としています。しかし、その場合、複数のスレッドを起動した場合に、先に起動したスレッドに後続のスレッドが処理するはずのシグナルが配送されてしまう事が起こりえます。 HUPを処理するスレッド1を起動 USR1を処理するスレッド2を起動 USR1シグナルを送る この場合に、スレッド1にUSR1が配送されてしまうケースに該当します。スレッド1のsigwaitはHUPのみを待ち受けているのですが、そこにUSR1が配送されても意図したハンドラ処理を行うことが出来ません。この辺のシグナルの流れは同僚の@harasouが書いたLinux

More