How to stop glib main loop mixing up perl loops



I have a weird issue on an application I am developing

The application is fully tabbed and runs loops to transcode video files, and I would like to be able to run the main transcoding loop fully in parellel, ie: the process running in one tab is totally separate to that running in another tab

This is a simplified version of the perl loop


sub encode_loop {
my ($optsi,$prog,$ext,$action_
grid,$dvb,$type_g,$files,$video_type)=@_;
my $subname='encode';

my $progrun=&run_cmd($files->{$
file_id},$opts,$prog,$ext,$subname,$action_grid,,0) ;
return 1
}


However this is what happens.

I start one loop running, then open another tab and set another loop running.

For the first file every works fine.

Then however

When the first file finishes encoding, the loop stops until the second loop is finished.

AND

The second loop transcodes multiple files at the same time instead of sequentially. The number is equal to the number of loops running, ie: if two tabs are running the encode process, then two files are encoded simultaneously, three tabs than three files

I am not sure if it is a thread issue or not



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]