Sponsored Content
Top Forums Programming C++ application halts at popen system call Post 302323324 by achenle on Saturday 6th of June 2009 03:37:51 PM
Old 06-06-2009
Your signal handler isn't async-signal safe

Your signal handler is not async-signal safe, so you've deadlocked.

You can't do things like malloc() or free() calls in a signal handler. Your application deadlocks because it get a SEGV when calling free(). The free() call will lock a mutex. Your SEGV happens after the mutex is locked. Your signal handler then gets called, and it looks like your handler makes a popen() call. The popen() call calls malloc(), which blocks waiting for the mutex that the free() call locked.

If you look at the man page for popen(), you'll see that it's MT-safe but not async-signal safe.
 

10 More Discussions You Might Find Interesting

1. Programming

Formatted piping popen() system call

Facingproblem in writing a c code that sorts a given string using piping popen() system call.. the question reads write a c program inclusive of all error conditions that sorts the given string of arrays as{"bravo","sit","class"}using formatted piping popen() system call (1 Reply)
Discussion started by: toughguy2handle
1 Replies

2. UNIX for Advanced & Expert Users

how to differentiate system call from library call

Hi, Ho do I differentiate system call from library call? for example if I am using chmod , how do I find out if it is a system call or library call? Thanks Muru (2 Replies)
Discussion started by: muru
2 Replies

3. Programming

c system call

How the c compiler differentiates the system calls and function calls? (1 Reply)
Discussion started by: rangaswamy
1 Replies

4. AIX

system() in a c++ program halts in AIX 5.3

system() in a c++ program halts in AIX 5.3, though the corresponding binary working fine in AIX 5.2 and lower version. I am executing a script using system in a c++ program. the script has the execute permission by all. (0 Replies)
Discussion started by: Amiya Rath
0 Replies

5. Programming

C:system call

Hi I'm studing the system call. I've written a small program that return the time spent in doing some operations. Now I'd like to write one that return the time spent in user mode of a process. I'm reading that i should use the tms struct: clock_t times(struct tms *buf); struct tms {... (2 Replies)
Discussion started by: Dedalus
2 Replies

6. Programming

socket system call can not succedd right after application crash.

hello all, I have developed a server application in C for ulinux kernel 2.6.It works very fine; creating a socket, binding it to a port, listening for incoming sockets and accepting them ,all finish without any error. But there is a problem regarding application crash.After an intentionally... (1 Reply)
Discussion started by: Sedighzadeh
1 Replies

7. Programming

question about system and popen in C

in man system it talks about SIGCHLD will be blocked, and SIGINT and SIGQUIT will be ignored. Does this signal stuff also happen in popen command? (even though man popen says nothing about signals) also if I am not using wait(&status) and I am using waitpid(pid, NULL, 0) how would... (1 Reply)
Discussion started by: omega666
1 Replies

8. Programming

need help with system call

hi everyone i wrote a system call and compiled the kernel succesfully... my system call is in a file in the kernel folder named my_syscall1.c (kernel/my_syscall1.c) the header file for this system call i added it in the folder include like this include/my_syscall1/my_syscall1.h my problem is... (2 Replies)
Discussion started by: demis87
2 Replies

9. Shell Programming and Scripting

system call

Trying to figure out a load issue with a webserver. I have traced a php script and noticed the following connect(4, {sa_family=AF_INET, sin_port=htons(3306), sin_addr=inet_addr("XX.XX.XX.XX")}, 16) = -1 EINPROGRESS (Operation now in progress) <0.000035> poll(, 1, 2000) = 1 () <0.000120>... (5 Replies)
Discussion started by: rajan007
5 Replies

10. OS X (Apple)

Applescript application call problem...

Hi all... I am trying to create a shell project purely for this Macbook Pro. I do NOT want to use SOX as the sampling _source_ but Quicktime instead, the idea being that NO third party installs will be needed. The code below works fine except the commented out Applescript line does not do... (2 Replies)
Discussion started by: wisecracker
2 Replies
signal(3tcl)															      signal(3tcl)

NAME
signal - dynamically loadable signal handling for Tcl/Tk SYNOPSIS
signal (add|delete|print|version) [options] COMMANDS
add signo proc [-async] Adds a signal handler for signal signo through proc proc. Signals can be provided by number, or the most common ones are provided by name (e.g., SIGHUP). The proc is any Tcl procedure, and it is evaluated when the signal comes in. It will be provided no arguments. Signal handlers have Posix semantics - they persist until reset. If -async is used, the signal handler is created using Tcl_AsyncCreate(). Checks for the signal are very frequent (each evaluation) using this technique, but one doesn't know quite where evaluation is or how to handle errors in this situation. The code will evaluate the pro- vided procedure in the current interpreter if available, and in the interpreter which added the signal handler otherwise. At least until a better scheme is suggested. The -async is especially useful to interrupt "runaway" procs, or to cause a quick exit; the default mechanism simply waits for another MainLoop cycle. signal delete signo Restores handling of signal signo to the default ( SIG_DFL ). signal print Prints the handling of all signals with handlers. Formatted as signal ----> procedure or as signal !---> procedure if the signal is handled asynchronously signal print signo Prints the procedure for handling signal signo. Prints the word UNHANDLED if no signal handler is active for that signal. signal version Returns the string representing the current version of the package AUTHOR
Michael Schwartz <mschwart@nyx.net>. Tilman Kranz <tilde@tk-sls.de> patched this for wider portability on Linux Tcl Signal Extension 1.4.0.1 Tcl signal(3tcl)
All times are GMT -4. The time now is 08:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy