Check-in [0819a7a89c]
Overview
Comment: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().
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:0819a7a89c5803733b8d2adcb6998f3fbb75bb7c
User & Date: rkeene on 2014-11-12 05:46:48
Other Links: manifest | tags
Context
2014-11-12
05:54
Updated to call Tcl_Preserve/Tcl_Release as appropriate check-in: d9f1a05711 user: rkeene tags: trunk
05:46
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(). check-in: 0819a7a89c user: rkeene tags: trunk
05:09
Removed interruption support, there is no clean way to implement it check-in: 39025b67ed user: rkeene tags: trunk
Changes

Modified appfsd.c from [30750361ba] to [3ceaeb1976].

  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   	/*