aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/unix/sys.c
diff options
context:
space:
mode:
authorMatthias Lang <[email protected]>2010-08-19 15:12:26 +0200
committerPatrik Nyblom <[email protected]>2012-04-17 16:11:26 +0200
commite2277e240790930563b0833854e7bc6a8338cf5c (patch)
tree7cadd3a34cd454ff4b26bfcc2827a6a201520cc7 /erts/emulator/sys/unix/sys.c
parentf1a49c45e4b2ec746407fd777ba31fec6cab118e (diff)
downloadotp-e2277e240790930563b0833854e7bc6a8338cf5c.tar.gz
otp-e2277e240790930563b0833854e7bc6a8338cf5c.tar.bz2
otp-e2277e240790930563b0833854e7bc6a8338cf5c.zip
Extend erlang:port_info/1,2 to show the OS pid of a spawned process
When spawning OS (unix) processes with erlang:open_port, store the resulting unix pid so that it can be queried later on using erlang:port_info/1,2.
Diffstat (limited to 'erts/emulator/sys/unix/sys.c')
-rw-r--r--erts/emulator/sys/unix/sys.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/erts/emulator/sys/unix/sys.c b/erts/emulator/sys/unix/sys.c
index f94e0f2296..bf69f3bf90 100644
--- a/erts/emulator/sys/unix/sys.c
+++ b/erts/emulator/sys/unix/sys.c
@@ -1163,6 +1163,8 @@ static int set_driver_data(int port_num,
report_exit_list = report_exit;
}
+ erts_port[port_num].os_pid = pid;
+
if (read_write & DO_READ) {
driver_data[ifd].packet_bytes = packet_bytes;
driver_data[ifd].port_num = port_num;