Ruby performing 2nd loop, before finishing 1st loop

P

praveen praveen

Hi,

My code is like this:

if (row.abc1== 'pnc')


action1

end

if (abc2 == 'hjayu')

action2

end

Now the probelm is, before finishing the action1, it is going to perform
action2 & resulting crashing the system.

what might be the problem, can somebody pls help

Thanks in advance
apr
 
A

Andrea Dallera

Does action1 run on a different thread than the one the method was
called? Like:

def action1
Thread.new do
#your code here
end
end

Be wary that it might be that what happens inside action1 runs on a
different thread, just not explicitly like this, for example it might
call a library that runs its stuff on a separate thread. Could you show
more of what happens inside action1() ?
 
A

apr apr

Andrea said:
Does action1 run on a different thread than the one the method was
called? Like:

def action1
Thread.new do
#your code here
end
end

Be wary that it might be that what happens inside action1 runs on a
different thread, just not explicitly like this, for example it might
call a library that runs its stuff on a separate thread. Could you show
more of what happens inside action1() ?

Thanks for ur reply Andrea,

It is like this,

if (abc1 = fgd)
click link1
enter value1
enter value2
click ok
end
if (abc2 = fge)
click link2
select a check box1
enter value1
click ok
end

Thanks
apr
 
A

Andrea Dallera

Hei,

if (abc1 = fgd)
click link1
enter value1
enter value2
click ok
end
if (abc2 = fge)
click link2
select a check box1
enter value1
click ok
end

Still, i don't understand what's going on :)
One quick and dirty (REALLY dirty) fix might be to check, before the
abc2 == (mind the ==, NOT = ) fge condition evaluation, if the system is
in a suitable state for the operation to be run and, if not, wait a
little until it's ready. Something like:


if (abc1 == fgd)
click link1
enter value1
enter value2
click ok
end

while !operation_over?
sleep(1)
end

if (abc2 = fge)
click link2
select a check box1
enter value1
click ok
end

where operation_over? is a method that you will have to write that
checks for the system to be in a proper state: it should return true if
the operation run after the first condition is over, false otherwise.
But really, think twice before doing this: the problem you're
experiencing derives from some global value you're changing, and
global's bad :) i suggest you check for what's going on deep under and
fix the underlying problem instead of writing this hack.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,680
Members
48,796
Latest member
Greg L.

Latest Threads

Top