6

I need to set a time limit on a python function which use some multiprocessing stuff (I don't know if it matters). Something like this:

function(a_list): p1 = Process(a_list[0:len(a_list/2)]) p2 = Process(a_list[len(a_list)/2: len(a_list)]) //start and join p1, p2 

I look around the net and I found a time out decorator but it looks quite tricky and verbose (I'm newbie on decorators). What I'd want is a simple thing.

EDIT:

I think I made it too simple. My program iterates over the above function and store result in a list something like this:

while(something): retval = function(some_list) # here I need the time out thing # if function timed out then skip ris_list.append(retval) 
0

1 Answer 1

11

You should be able to do that with this code:

process.join(timeout) if process.is_alive(): process.terminate() 

So instead of setting a timeout in the function, you can join with a timeout the process and if the process hasn't finished after that timeout, then terminate it.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.