Differences From
Artifact [30750361ba]:
- File
appfsd.c
— part of check-in
[0819a7a89c]
at
2014-11-12 05:46:48
on branch trunk
— Fixed actual problem with interruptions (which was really unrelated) -- Tcl notifier thread is terminated on fork() called by fuse_main(), since we create a Tcl interpreter for testing before calling fuse_main() the notifier dies and is not restarted. We now terminate it before fork().
(user:
rkeene,
size: 38500)
[annotate]
[blame]
[check-ins using]
1624 1624
1625 1625 fprintf(stderr, "Unable to initialize Tcl interpreter for AppFSd:\n");
1626 1626 fprintf(stderr, "%s\n", test_interp_error);
1627 1627
1628 1628 return(1);
1629 1629 }
1630 1630 Tcl_DeleteInterp(test_interp);
1631 + Tcl_FinalizeNotifier(NULL);
1631 1632
1632 1633 /*
1633 1634 * Register a signal handler for hot-restart requests
1634 1635 */
1635 1636 signal_ret = signal(SIGHUP, appfs_signal_handler);
1636 1637 if (signal_ret == SIG_ERR) {
1637 1638 fprintf(stderr, "Unable to install signal handler for hot-restart\n");
................................................................................
1638 1639 fprintf(stderr, "Hot-restart will not be available.\n");
1639 1640 }
1640 1641
1641 1642 /*
1642 1643 * Add FUSE arguments which we always supply
1643 1644 */
1644 1645 fuse_opt_parse(&args, NULL, NULL, appfs_fuse_opt_cb);
1645 - fuse_opt_add_arg(&args, "-odefault_permissions,fsname=appfs,subtype=appfsd,use_ino,kernel_cache,entry_timeout=0,attr_timeout=0,big_writes,hard_remove");
1646 + fuse_opt_add_arg(&args, "-odefault_permissions,fsname=appfs,subtype=appfsd,use_ino,kernel_cache,entry_timeout=0,attr_timeout=0,big_writes,intr,hard_remove");
1646 1647
1647 1648 if (getuid() == 0) {
1648 1649 fuse_opt_parse(&args, NULL, NULL, NULL);
1649 1650 fuse_opt_add_arg(&args, "-oallow_other");
1650 1651 }
1651 1652
1652 1653 /*