... | ... |
@@ -2,7 +2,7 @@ |
2 | 2 |
- エラーログに"[error]"という文字列を追加した |
3 | 3 |
- メンバがタイムアウトしたときの状態を詳細に出力するようにした |
4 | 4 |
- msyncのstatusオプションで、実行中のコマンドを表示するようにした |
5 |
- - 応答速度が少しだけ向上した気がする |
|
5 |
+ - レイテンシが若干向上した |
|
6 | 6 |
- msyncを複数同時実行したときに挙動がおかしくなる不具合を修正 |
7 | 7 |
- ファイルクローズが失敗したときに異常終了することがあった不具合を修正 |
8 | 8 |
- msyncにdeleteオプションを指定したときの結果表示がおかしくなる不具合を修正 |
... | ... |
@@ -10,11 +10,10 @@ |
10 | 10 |
|
11 | 11 |
1.1.3: 2009/1/14 |
12 | 12 |
- FreeBSDから msync -r ができなかった不具合を修正 |
13 |
- - FreeBSDでは受信はできましたが、送信できない状態でした |
|
14 |
- - msync --membersの結果をソートするようにしました |
|
13 |
+ - msync --membersの結果をソートするようにした |
|
15 | 14 |
|
16 | 15 |
1.1.2: 2008/12/24 |
17 |
- - makuosan終了時にシャットダウンメッセージを飛ばしていなかった不具合を修正 |
|
16 |
+ - 終了時にシャットダウンメッセージを飛ばしていなかった不具合を修正 |
|
18 | 17 |
|
19 | 18 |
1.1.1: 2008/12/24 |
20 | 19 |
- msyncコマンドに--deleteオプションを追加 |
... | ... |
@@ -22,8 +21,8 @@ |
22 | 22 |
- エラーを詳細に表示するようにした |
23 | 23 |
|
24 | 24 |
1.0.1: 2008/11/12 |
25 |
- - FreeBSDとMacOSXに対応しました |
|
26 |
- - SPECファイルと起動スクリプトを同梱しました |
|
25 |
+ - FreeBSDとMacOSXに対応 |
|
26 |
+ - SPECファイルと起動スクリプトを同梱 |
|
27 | 27 |
|
28 | 28 |
1.0.0: 2008/11/6 |
29 | 29 |
- 安定版リリース |
... | ... |
@@ -979,31 +979,23 @@ static int msend_req_del_stat_waitcheck(int s, mfile *m) |
979 | 979 |
|
980 | 980 |
static void msend_req_del_stat(int s, mfile *m) |
981 | 981 |
{ |
982 |
- if(m->pid == 0){ |
|
982 |
+ if(m->pipe != -1){ |
|
983 |
+ msend_req_del_stat_read(s, m); |
|
984 |
+ }else{ |
|
983 | 985 |
if(msend_req_del_stat_waitcheck(s, m)){ |
984 | 986 |
m->sendwait = 1; |
985 | 987 |
}else{ |
986 |
- m->mdata.head.nstate = MAKUO_SENDSTATE_LAST; |
|
987 |
- m->initstate = 1; |
|
988 |
- m->sendwait = 0; |
|
989 |
- ack_clear(m, -1); |
|
990 |
- } |
|
991 |
- return; |
|
992 |
- } |
|
993 |
- if(m->pipe == -1){ |
|
994 |
- if(waitpid(m->pid, NULL, WNOHANG) == m->pid){ |
|
995 |
- m->pid = 0; |
|
996 |
- }else{ |
|
997 |
- m->sendwait = 1; |
|
988 |
+ if(m->link){ |
|
989 |
+ msend(mkack(&(m->link->mdata), &(m->link->addr), MAKUO_RECVSTATE_CLOSE)); |
|
990 |
+ } |
|
991 |
+ if(waitpid(m->pid, NULL, WNOHANG) != m->pid){ |
|
992 |
+ m->sendwait = 1; |
|
993 |
+ }else{ |
|
994 |
+ m->pid = 0; |
|
995 |
+ msend_mfdel(m); |
|
996 |
+ } |
|
998 | 997 |
} |
999 |
- return; |
|
1000 | 998 |
} |
1001 |
- msend_req_del_stat_read(s, m); |
|
1002 |
-} |
|
1003 |
- |
|
1004 |
-static void msend_req_del_last(int s, mfile *m) |
|
1005 |
-{ |
|
1006 |
- msend_mfdel(m); |
|
1007 | 999 |
} |
1008 | 1000 |
|
1009 | 1001 |
static void msend_req_del_break(int s, mfile *m) |
... | ... |
@@ -1068,6 +1060,9 @@ static void msend_req_del_close(int s, mfile *m) |
1068 | 1068 |
msend_packet(s, &(m->mdata), &(m->addr)); |
1069 | 1069 |
return; |
1070 | 1070 |
} |
1071 |
+ if(m->link){ |
|
1072 |
+ m->link->sendwait = 0; |
|
1073 |
+ } |
|
1071 | 1074 |
m->link = NULL; |
1072 | 1075 |
msend_mfdel(m); |
1073 | 1076 |
} |
... | ... |
@@ -1079,9 +1074,6 @@ static void msend_req_del(int s, mfile *m) |
1079 | 1079 |
case MAKUO_SENDSTATE_STAT: |
1080 | 1080 |
msend_req_del_stat(s, m); |
1081 | 1081 |
break; |
1082 |
- case MAKUO_SENDSTATE_LAST: |
|
1083 |
- msend_req_del_last(s, m); |
|
1084 |
- break; |
|
1085 | 1082 |
case MAKUO_SENDSTATE_BREAK: |
1086 | 1083 |
msend_req_del_break(s, m); |
1087 | 1084 |
break; |