[tor-commits] [tor-launcher/master] Use new processID API if available.
mikeperry at torproject.org
mikeperry at torproject.org
Mon Jul 15 23:56:20 UTC 2013
commit c5a14f99a548c95647653dd293327aac78891979
Author: Kathleen Brade <brade at pearlcrescent.com>
Date: Mon Jul 15 16:50:57 2013 -0700
Use new processID API if available.
This removes the Tor Launcher dependency on JS-Ctypes.
---
src/components/tl-process.js | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/src/components/tl-process.js b/src/components/tl-process.js
index 1ef4d8a..91a5ec2 100644
--- a/src/components/tl-process.js
+++ b/src/components/tl-process.js
@@ -537,8 +537,24 @@ TorProcessService.prototype =
_getpid: function()
{
+ // Use nsIXULRuntime.processID if it is available.
+ var pid = 0;
+
try
{
+ var xreSvc = Cc["@mozilla.org/xre/app-info;1"]
+ .getService(Ci.nsIXULRuntime);
+ pid = xreSvc.processID;
+ }
+ catch (e)
+ {
+ TorLauncherLogger.safelog(2, "failed to get process ID via XUL runtime:",
+ e);
+ }
+
+ // Try libc.getpid() via js-ctypes.
+ if (!pid) try
+ {
var getpid;
if (TorLauncherUtil.isMac)
{
@@ -566,14 +582,14 @@ TorProcessService.prototype =
getpid = libc.declare("getpid", ctypes.default_abi, ctypes.int);
}
- return getpid();
+ pid = getpid();
}
catch(e)
{
TorLauncherLogger.safelog(4, "unable to get process ID: ", e);
}
- return 0;
+ return pid;
},
endOfObject: true
More information about the tor-commits
mailing list