I have this code to start 4 prog in 4 separate threads. however 2 of
the ibScans and
emailProcessing threads are not even starting. dunno why.
ibScans and emailProcessing are not even starting and i dont see the
puts hitting it at all. #require ‘sendmail’
require ‘twsFunctions’
require ‘sendGmail’
def startIB
@ibThread=Thread.new do
system(“start E:\TradingTools\IBController
\IBControllerStart_customised.bat”)
end
@ibThread.join
puts "ib started #{ @ibThread.status}"
end
def ibScans
@ibScansThread=Thread.new do
load ‘twsScans.rb’
end @ibScansThread.join
puts “ib scans started #{ @ibScansThread.status}”
end
def abScans @abScansThread =Thread.new do
load “ABScans.rb”
end @abScansThread.join
puts “ab scans started #{ @abScansThread.status}”
end
def emailProcessing
@emailThread=Thread.new do
while true
emailProcessing threads are not even starting. dunno why.
unless you have a very good reason not too always put
Thread.current.abort_on_exception
at the top of every Thread.new block
if you don’t see an exception getting raise then one of two things is
happening:
the threads are blocked somehow
you have blocked on the threads
i notice you are joining the thread in startIB - do you realize this
is exactly like not using a thread at all? why are you joining
that thread?
unless “start E:\TradingTools\IBController
\IBControllerStart_customised.bat” exits instantly you are
instructing your program to wait until it finished before continuing.
if you don’t see an exception getting raise then one of two things is
\IBControllerStart_customised.bat" exits instantly you are
instructing your program to wait until it finished before continuing.