2.1.6: - wrapped send_command in a Thread (send async) so output processing can commend immeadiately. this was o.k. before, but had strange behaviour when using popen3 from threads. thanks to tanaka akira for this suggestion. - iff ENV['SESSION_USE_SPAWN'] is set Session uses Spawn::spawn instead of Open3::popen3. also noted that spawn seems to be a bit faster. - added tests for threads. - run 'sh SESSION_USE_SPAWN=1 ruby test/session.rb' to test using spawn - added test for idl so it's test is not run if system doesn't have it, all that should be required for 'ruby test/session.rb' is should be sh' - removed sample/tcsh and note about Tcsh and Csh in README - stderr redirection/separation is flaky in those shells 2.1.5: - added Session.use_spawn=, AbstractSession.use_spawn=, and an :use_session=> option to AbstractSession#initialize. if any of them are set the code uses Spawn::spawn to create external processes instead of Open3::popen3. Spawn::spawn uses named pipes (fifos) for IPC instead of forking and pipes. the fork used in popen3 can cause strange behaviour with multi-threaded apps (like a tk app). see source for details 2.1.4: - added Thread.exclusive{} wrapper when io is read to works in multi threaded apps