2014年7月1日火曜日

7/1 Extentionへの配送試験

CoreEngineがだいぶ形になってきました。(といってもちゃんと完成しているのはCtrl+c時のExtention終了処理だけですが。)
本日はExtentionへの配送処理とCoreEngineへの送信処理を実装。
コード自体はどちらも以前の実装のコピペ。テストも兼ねてTimerExtentionの実装も実施。
いよいよリリースに向けたテストを始めました。しかしCoreEngineが暴走するという問題が発生。この部分の調査に入りたい。

自身の作業方法で、こまめにcommitできていないのが課題。1commitに複数の修正が入ってます。
みなさまはどのようなタイミングでコミットしているんですかね。

本日の作業
https://github.com/chikin14niwa/hytframework/commit/ee0035bd85758dd32153a1e955e6a80cfb1d6013

2014年6月29日日曜日

6/29 Signalの受信

poll関数使用中にsignalを使用する際のメモ。
signalfd。
これを使用するとpollでsignalの受信イベントを待つことができる。

int signalfd(int fd, const sigset_t *mask, int flags);

fdはsignal受信用ファイルディスクリプタ。これはすでにsignal受信用のファイルディスクリプタがある場合に使用され、初めて使用する場合は、-1を入力すること。
maskは signalの受信ルール。詳しくはsigprocmaskを見ること。
flagsはファイルディスクリプタ作成時のルール。

詳細はMan Pageを参照すること。

2014年6月27日金曜日

2014/06/26 パイプのメモ

(1)パイプはソケットではない。
 よって、send/recvは使用できない。
(2)パイプにはread/writeが指定されている。
  pipe[0]がread、pipe[1]がwriteである。

今日恥ずかしながら初めて知りました。
少し賢くなりました。

2014年6月25日水曜日

2014/06/25 shared_ptr使用のメモ

shared_ptrの使用方法でハマったので自分用のメモ。

一時変数をshared_ptrに格納した際、double freeのエラーが発生。

Object obj;
std::shared_ptr<Object> objp = std::shared_ptr<Object>(&obj);
objp = nullptr;

どうもこれを実行すると一時変数のobjを解放してしまう模様。
解決策としてはshared_ptrを新たに生成すること。

Object obj;
std::shared_ptr<Object> objp = std::make_shared<Object>(obj);
objp = nullptr;

shared_ptrはまだまだ勉強する必要があるなと感じさせられたデバッグでした。

2014年6月20日金曜日

2014/06/20 signalの受信

本日は起動後の終了処理を実装。
signalを受信しTerminate関数を呼ぶことに成功。
気になる点は、2点。
・sigusr1受信時に落ちる。
・プロセスのforkに失敗。

2つ目は動作確認を始めてから解決していないので、しっかりと追っていきたい。

本日の作業
https://github.com/chikin14niwa/hytframework/commit/01e0d031d40ff1179415a7bc8044b5dba63baecd

2014年6月17日火曜日

2014/06/17 デバッグ始めました

子プロセスが上手く動作しない原因の解析を開始しました。
原因の一つは単純で、Initialize関数の入力期待値と実際の入力値が異なったから。Extentionの起動関数を変更した際、修正漏れがあったよう。
対策としては、これまではExtention用の設定値のみを入力としていたが、該当のExtentionとExtention以外の設定値を全て渡すように変更。

ようやく点と点がつながってきて面白くなってきました。

本日の作業
https://github.com/chikin14niwa/hytframework/commit/7f8467c7202241d174434779494bef2115501f17

2014年6月16日月曜日

6/15 ようやく

ようやくテストに辿りつけました。
実装にところどころ抜けがあるのは、最初に設計できていないから。そこは勉強のため目をつぶるとして一個ずつ潰していきたい。
まず明日はExtentionがうまく起動していない部分を調査したい。
TestExtentionの動作確認して、TimerExtentionの動作確認終わればリリースしたいと思います。

本日の作業:
https://github.com/chikin14niwa/hytframework/commit/3501f11e072a0923d81c7bf18399a9370d33caad