[Armadillo:08278] Re: flatfsd同時実行時の排他制御方法
email@hidden
2012年 8月 30日 (木) 13:01:37 JST
お世話になっております。
千葉です。
自己レスです。
flatfsd -s実行時にプロセスIDファイルのありなしをみて、
ファイルがない場合のみフラッシュ保存を行うようにしてみました。
flatfsdプロセスを常駐させてシグナルで保存させる方法はできなくなります。
これで大丈夫か検証中ですが自己解決クローズとさせていただきます。
ありがとうございました。
flatfsd.c
static int saveconfig(void)
{
/* Query PID file, and send USR1 to the running daemon */
int pid = readpidfile();
if(pid > 0) {
printf("While saving configuration\n");
// kill(pid, SIGUSR1);
removepidfile();
} else {
struct stat st_buf;
creatpidfile();
/* No daemon running, so save the config ourselves */
if (stat(IGNORE_FLASH_WRITE_FILE, &st_buf) < 0) {
save_config_to_flash();
} else {
syslog(LOG_INFO, "Not writing to flash because %s
exists",
IGNORE_FLASH_WRITE_FILE);
}
removepidfile();
}
return 0;
}
email@hidden
送信者: email@hidden
2012/08/06 09:44
宛先
email@hidden
cc
件名
[Armadillo:08225] flatfsd同時実行時の排他制御方法
お世話になっております。
千葉と申します。
Armadillo-210を使用してソフトを開発しています。
SYSTEM関数を使用してflatfsd -sを実行しています。
2つのプロセスが同時にflatfsdを実行した場合、2つとも停止することがあります
。
(停止しているときに別プロセスでflatfsdを実行するとなぜか停止が解除されま
す。)
調べたところ ioctl(flatinfo.fd,MEMERASE,&erase_info) で止まっているようで
す。
排他制御をしたいと思うのですが、排他制御のスキル不足で思うように進めまてい
ません。
排他ではないのですがflatfsdのプロセスを常駐させて、同時実行した場合は
常駐プロセスにシグナルが送られ、常駐プロセスがフラッシュ保存を行うので
停止はしませんでした。
この方法で行こうと思いましたが、先日質問したflatfsdの実行結果の取得が
できなくなってしまうため別の方法を探しています。
<
http://lists.atmark-techno.com/pipermail/armadillo/2012-August/008195.html
>
よい方法があればご教示いただけないでしょうか。
宜しくお願い致します。
_______________________________________________
armadillo mailing list
email@hidden
http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20120830/1fc0cfc7/attachment.html>
armadillo メーリングリストの案内