Pipe limit?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Pipe limit?

Holger Kleinsorgen
Hi,

is there some kind of limit regarding the number of concurrent pipes to external processes on Windows?
I'm spawning 16 processes and want to redirect the output to Stdout, but I get the following exception.
It doesnt crash when I spawn 8 processes.

Cause of Dump: Unhandled exception: out of threads

Context Stack:
[1] Win32SystemSupport(ExternalInterface)>>externalAccessFailedWith:
[2] Win32SystemSupport>>externalAccessFailedWith:
[3] Win32SystemSupport>>WriteFile:lpBuffer:nNumberOfBytesToWrite:lpNumberOfBytesWritten:lpOverlapped:
[4] Win32SystemSupport>>okWriteFile:lpBuffer:nNumberOfBytesToWrite:lpNumberOfBytesWritten:lpOverlapped:
[5] optimized [] in PCPipeAccessor>>primWriteFrom:startingAt:for:
[6] BlockClosure>>ensure:
[7] PCPipeAccessor>>primWriteFrom:startingAt:for:
[8] PCPipeAccessor(IOAccessor)>>writeFrom:startingAt:forSure:
[9] IOBuffer>>flushBufferUpTo:
[10] ExternalWriteStream>>flush
[11] optimized [] in StandardIOStream>>nextPut:
Reply | Threaded
Open this post in threaded view
|

Re: Pipe limit?

Holger Kleinsorgen
Forgot: this is 7.7 on Windows 7
Reply | Threaded
Open this post in threaded view
|

Re: Pipe limit?

Steven Kelly
In reply to this post by Holger Kleinsorgen
[vwnc] Pipe limit?
See DLLandCConnectGuide 5-15 Thread Limit and Low Tide:
"THAPI provides a hard limit on the maximum number of threads that can be created and a low-tide limit on the number of quiescent threads. When the Object Engine starts up, it initializes both the upper and lower thread limits to 32."
 
The subsequent paragraphs have the details and show what can be changed and how.
 
Steve

From: [hidden email] on behalf of Holger Kleinsorgen
Sent: Wed 24/06/2015 20:54
To: [hidden email]
Subject: [vwnc] Pipe limit?

Hi,

is there some kind of limit regarding the number of concurrent pipes to
external processes on Windows?
I'm spawning 16 processes and want to redirect the output to Stdout, but I
get the following exception.
It doesnt crash when I spawn 8 processes.

Cause of Dump: Unhandled exception: out of threads

Context Stack:
[1]     Win32SystemSupport(ExternalInterface)>>externalAccessFailedWith:
[2]     Win32SystemSupport>>externalAccessFailedWith:
[3]
Win32SystemSupport>>WriteFile:lpBuffer:nNumberOfBytesToWrite:lpNumberOfBytesWritten:lpOverlapped:
[4]
Win32SystemSupport>>okWriteFile:lpBuffer:nNumberOfBytesToWrite:lpNumberOfBytesWritten:lpOverlapped:
[5]     optimized [] in PCPipeAccessor>>primWriteFrom:startingAt:for:
[6]     BlockClosure>>ensure:
[7]     PCPipeAccessor>>primWriteFrom:startingAt:for:
[8]     PCPipeAccessor(IOAccessor)>>writeFrom:startingAt:forSure:
[9]     IOBuffer>>flushBufferUpTo:
[10]    ExternalWriteStream>>flush
[11]    optimized [] in StandardIOStream>>nextPut:



--
View this message in context: http://forum.world.st/Pipe-limit-tp4833927.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: Pipe limit?

Holger Kleinsorgen
Thanks, Steve, that solved my problem. Each forked process has two pipes (stdout + sterr), so I hit the 32 threads limit.

Steven Kelly wrote
See DLLandCConnectGuide 5-15 Thread Limit and Low Tide:
"THAPI provides a hard limit on the maximum number of threads that can be
created and a low-tide limit on the number of quiescent threads. When the
Object Engine starts up, it initializes both the upper and lower thread
limits to 32."
 
The subsequent paragraphs have the details and show what can be changed and
how.