Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.


sleemanj

1490 posts

Uber Geek


#83431 16-May-2011 22:00
Send private message

For reasons which are unimportant, we have something like the following code snippet...

 

foreach($Threads as $Thread)
{
$childpid = pcntl_fork();
if($childpid == 0)
{
echo "!! Forked\n"; $this->flush();
$rc = $this->ftp_puller_thread($Thread);
exit($rc);
}
elseif($childpid > 0)
{
// We are the parent, spawn another (or fall through to wait on the exit statuses)
$ThreadsRunning[$childpid] = true;
sleep(rand(5,20)); // Don't hammer
}
}
 
while(count($ThreadsRunning))
{
$childpid = pcntl_wait($status);
if($childpid > 0)
{
unset($ThreadsRunning[$childpid]);
if(pcntl_wexitstatus($status) > 0) $Result = FALSE;
}
}


which works, except, when the child exits, it seems to close out the browser connection, the parent never gets to finish doing what it's doing (nor I expect do other children). I'm GUESSING that php in it's cleanup etc is telling mod_fastcgi that it's done, when in fact, it's not, only a child is done. Has anybody got any clue on any way I might be able to STOP php from doing that, while still retaining the exit status (that is, I don't want to do a sigint 9 or something else ugly like that).

 




---
James Sleeman
I sell lots of stuff for electronic enthusiasts...


Create new topic
sleemanj

1490 posts

Uber Geek


  #469923 17-May-2011 00:54
Send private message

I ended up having to have the child write it's exit status to a file then send itself SIGKILL, parent waits to reap the child and reads the exit status from the appropriate file.

Not pretty really, but I guess it works well enough :-/




---
James Sleeman
I sell lots of stuff for electronic enthusiasts...


Create new topic





News and reviews »

Air New Zealand Starts AI adoption with OpenAI
Posted 24-Jul-2025 16:00


eero Pro 7 Review
Posted 23-Jul-2025 12:07


BeeStation Plus Review
Posted 21-Jul-2025 14:21


eero Unveils New Wi-Fi 7 Products in New Zealand
Posted 21-Jul-2025 00:01


WiZ Introduces HDMI Sync Box and other Light Devices
Posted 20-Jul-2025 17:32


RedShield Enhances DDoS and Bot Attack Protection
Posted 20-Jul-2025 17:26


Seagate Ships 30TB Drives
Posted 17-Jul-2025 11:24


Oclean AirPump A10 Water Flosser Review
Posted 13-Jul-2025 11:05


Samsung Galaxy Z Fold7: Raising the Bar for Smartphones
Posted 10-Jul-2025 02:01


Samsung Galaxy Z Flip7 Brings New Edge-To-Edge FlexWindow
Posted 10-Jul-2025 02:01


Epson Launches New AM-C550Z WorkForce Enterprise printer
Posted 9-Jul-2025 18:22


Samsung Releases Smart Monitor M9
Posted 9-Jul-2025 17:46


Nearly Half of Older Kiwis Still Write their Passwords on Paper
Posted 9-Jul-2025 08:42


D-Link 4G+ Cat6 Wi-Fi 6 DWR-933M Mobile Hotspot Review
Posted 1-Jul-2025 11:34


Oppo A5 Series Launches With New Levels of Durability
Posted 30-Jun-2025 10:15



Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.