Re: [JSch-users] Potential JSch threading issues
Status: Alpha
Brought to you by:
ymnk
From: <ym...@jc...> - 2004-11-17 06:43:55
|
Hi, +-From: Timothy Webb <ti...@ci...> -- |_Date: Tue, 16 Nov 2004 15:57:34 -0500 __ | |Essentially... ChannelSftp is saved as a static. Multiple |threads are accessing it (synchronizing on it at any given time |ensuring thread-safe usage). They take turns performing |operations such as gets, puts and mkdirs. Ok, I wanted to hear that. The session object should be thread safe, but I have not intended that channel objects, ChannelExec, ChannelSftp etc. are not.... But, it seems your program has accessed to channel objects in the synchronized context, so it may be preferable to work for you. |Since PipedInputStream keeps track of the last thread, if the last |thread to use it dies before another one begins using it, then the |PipedOutputStream assumes the other side is dead and ultimately |the entire SSH Session is disconnected. By replacing the |PipedIn/OutStreams with ones that don't monitor the thread |"isAlive()" of it's pair, the code works as intended. From our requirements, such a checking may not be required. Ok, I'll keep that in my mind in implementing our own Piped IO streams. Thanks, -- ymnk |