Commit c028de54 authored by Andrey Filippov's avatar Andrey Filippov

modified/tested for eyesis

parent 8ba46614
...@@ -276,7 +276,7 @@ log_msg("Processing camera state: " . $GLOBALS['camera_state_arr']['state']); ...@@ -276,7 +276,7 @@ log_msg("Processing camera state: " . $GLOBALS['camera_state_arr']['state']);
get_sysfs_sensors(); get_sysfs_sensors();
log_msg("Sensors map read from the sysfs:\n".str_sensors($GLOBALS['sensors']),1); log_msg("Sensors map read from the sysfs: ".str_sensors($GLOBALS['sensors'],1),1);
$GLOBALS['useDefaultPageNumber'] = 15; $GLOBALS['useDefaultPageNumber'] = 15;
$GLOBALS['protectedPage'] = 0; // / change to -1 to enable saving to page 0 $GLOBALS['protectedPage'] = 0; // / change to -1 to enable saving to page 0
...@@ -507,15 +507,15 @@ function update_minor_version($port, $silent = 0) { ...@@ -507,15 +507,15 @@ function update_minor_version($port, $silent = 0) {
if (substr ( $GLOBALS ['configs'] [$port] ['version'], 0, strrpos ( $GLOBALS ['configs'] [$port] ['version'], '.' ) ) == if (substr ( $GLOBALS ['configs'] [$port] ['version'], 0, strrpos ( $GLOBALS ['configs'] [$port] ['version'], '.' ) ) ==
substr ( $GLOBALS ['version'], 0, strrpos ( $GLOBALS ['version'], '.' ) )) { substr ( $GLOBALS ['version'], 0, strrpos ( $GLOBALS ['version'], '.' ) )) {
if (!$silent) { if (!$silent) {
log_msg ( "+++ WARNING: updating minor mismatch version for port $port: " . log_msg ( "WARNING: updating minor mismatch version for port $port: " .
$GLOBALS ['configs'] [$port] ['version'] . " to " . $GLOBALS ['version'] ); $GLOBALS ['configs'] [$port] ['version'] . " to " . $GLOBALS ['version'], 4);
} }
$GLOBALS ['configs'] [$port] ['version'] = $GLOBALS ['version']; $GLOBALS ['configs'] [$port] ['version'] = $GLOBALS ['version'];
$GLOBALS['configs'][$port]['version'] = $GLOBALS['version']; $GLOBALS['configs'][$port]['version'] = $GLOBALS['version'];
saveRotateConfig ($port, $GLOBALS['numBackups'] ); saveRotateConfig ($port, $GLOBALS['numBackups'] );
} else { } else {
log_msg ( "+++ ERROR: Can not auto-update version for port $port as MAJOR revision differs: " . log_msg ( "ERROR: Can not auto-update version for port $port as MAJOR revision differs: " .
$GLOBALS ['configs'] [$port] ['version'] . " to " . $GLOBALS ['version'] ); $GLOBALS ['configs'] [$port] ['version'] . " to " . $GLOBALS ['version'], 2);
} }
} }
} }
...@@ -625,15 +625,16 @@ function detect_camera(){ ...@@ -625,15 +625,16 @@ function detect_camera(){
} }
} }
if ($needupdate) { if ($needupdate) {
log_msg("Sensors not disabled by the application mode (10389 EEPROM):\n".str_sensors($GLOBALS['sensors']),1); log_msg("Sensors not disabled by the application mode (10389 EEPROM): ".str_sensors($GLOBALS['sensors'],1),1);
update_sysfs_sensors(); update_sysfs_sensors();
} }
// All eyesis cameras - disable fan control to re-use for 10359 power // All eyesis cameras - disable fan control to re-use for 10359 power
if ($GLOBALS['camera_state_arr']['eyesis_power']){ // disable fan control, reuse it to control power if ($GLOBALS['camera_state_arr']['eyesis_power']){ // disable fan control, reuse it to control power
$rslt=set_eyesis_power_control(); $rslt=set_eyesis_power_control();
log_msg("set_eyesis_power_control()=>".print_r($rslt,1)); log_msg("Setting sensors/multiplexers power");
log_msg("GLOBALS['camera_state_arr']=>".print_r($GLOBALS['camera_state_arr'],1)); log_msg("set_eyesis_power_control()=>".print_r($rslt,1),0);
log_msg("GLOBALS['camera_state_arr']=>".print_r($GLOBALS['camera_state_arr'],1),0);
} }
// Set IPs of slave cameras (if any) // Set IPs of slave cameras (if any)
if ($multicamera) { if ($multicamera) {
...@@ -658,7 +659,7 @@ function detect_camera(){ ...@@ -658,7 +659,7 @@ function detect_camera(){
} }
log_msg("Continue with master camera"); log_msg("Continue with master camera");
log_msg("=== Setting FPGA and sensor power ==="); log_msg("Setting FPGA and sensor power");
if ($GLOBALS['camera_state_arr']['has_slaves']) { if ($GLOBALS['camera_state_arr']['has_slaves']) {
$rslt = wait_slaves_boot ($GLOBALS['BOOT_RETRIES']); $rslt = wait_slaves_boot ($GLOBALS['BOOT_RETRIES']);
...@@ -737,8 +738,8 @@ function detect_camera(){ ...@@ -737,8 +738,8 @@ function detect_camera(){
fclose($f); fclose($f);
log_msg("Started detection for sensor port ".$port); log_msg("Started detection for sensor port ".$port);
} }
log_msg("System FPGA version: ".trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/fpga_version'))); log_msg("System FPGA version: ".trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/fpga_version')), 3);
log_msg("Sensor interface type: ".trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/fpga_sensor_interface'))); log_msg("Sensor interface type: ".trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/fpga_sensor_interface')), 3);
log_msg("All frames:\n" .trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/all_frames')),0); log_msg("All frames:\n" .trim(file_get_contents('/sys/devices/soc0/elphel393-framepars@0/all_frames')),0);
log_msg('Frames: '. implode(", ",$frame_nums),0); log_msg('Frames: '. implode(", ",$frame_nums),0);
...@@ -747,7 +748,7 @@ function detect_camera(){ ...@@ -747,7 +748,7 @@ function detect_camera(){
foreach ($GLOBALS['ports'] as $port) { foreach ($GLOBALS['ports'] as $port) {
if (elphel_get_P_value ( $port, ELPHEL_SENSOR) != $sensor_code){ if (elphel_get_P_value ( $port, ELPHEL_SENSOR) != $sensor_code){
log_msg("#### Wrong/missing sensor on port ".$port.", code=".elphel_get_P_value ( $port, ELPHEL_SENSOR). log_msg("#### Wrong/missing sensor on port ".$port.", code=".elphel_get_P_value ( $port, ELPHEL_SENSOR).
' (expected '.$sensor_code.") . Driver reports errors until port is disabled at later stage ####",1); ' (expected '.$sensor_code.") . Driver reports errors until port is disabled at later stage ####",2);
for ($chn =0; $chn <4; $chn++) { for ($chn =0; $chn <4; $chn++) {
$GLOBALS['sensors'][$port][$chn] = 'none'; $GLOBALS['sensors'][$port][$chn] = 'none';
} }
...@@ -775,7 +776,7 @@ function detect_camera(){ ...@@ -775,7 +776,7 @@ function detect_camera(){
} }
} }
if ($needupdate) update_sysfs_sensors(); if ($needupdate) update_sysfs_sensors();
log_msg("detected sensors:\n".str_sensors($GLOBALS['sensors']),1); log_msg("Detected sensors: ".str_sensors($GLOBALS['sensors'],1),3);
// Collect results from slave channels that were running in parallel // Collect results from slave channels that were running in parallel
$nrep =0; $nrep =0;
...@@ -838,9 +839,10 @@ function detect_camera(){ ...@@ -838,9 +839,10 @@ function detect_camera(){
if (isset ($curl_data)){ // wait and collect responses if (isset ($curl_data)){ // wait and collect responses
$enable_echo = !array_key_exists('REQUEST_METHOD',$_SERVER); $enable_echo = !array_key_exists('REQUEST_METHOD',$_SERVER);
if ($enable_echo) echo "Waiting slaves to finish: "; if ($enable_echo) echo colorize("Waiting slaves to finish (number left): ",'YELLOW',0);
$results = curl_multi_finish($curl_data, true, 0, $enable_echo); // Switch true -> false if errors are reported (other output damaged XML) $results = curl_multi_finish($curl_data, true, 0, $enable_echo); // Switch true -> false if errors are reported (other output damaged XML)
log_msg('curl_multi returned: '.print_r($results,1)); if ($enable_echo) echo colorize(" DONE\n",'GREEN',0);
log_msg('curl_multi returned: '.print_r($results,1),0);
} }
if ($GLOBALS['camera_state_arr']['exit_stage'] == $GLOBALS['camera_state_arr']['state']){ if ($GLOBALS['camera_state_arr']['exit_stage'] == $GLOBALS['camera_state_arr']['state']){
respond_xml($GLOBALS['camera_state_arr']['state']); respond_xml($GLOBALS['camera_state_arr']['state']);
...@@ -854,10 +856,16 @@ function detect_camera(){ ...@@ -854,10 +856,16 @@ function detect_camera(){
} }
function str_sensors($sens_arr){ function str_sensors($sens_arr,$inline=0){
$sports=array(); $sports=array();
foreach ($sens_arr as $port=>$subchn) $sports[]=$port.': '.implode(", ",$subchn); if ($inline) {
return implode("\n",$sports); foreach ($sens_arr as $port=>$subchn) $sports[]=implode(", ",$subchn);
return '['.implode("],[",$sports).']';
} else {
foreach ($sens_arr as $port=>$subchn) $sports[]=$port.': '.implode(", ",$subchn);
return implode("\n",$sports);
}
} }
...@@ -906,7 +914,7 @@ function init_cameras(){ // $page) { init can only be from default page as page ...@@ -906,7 +914,7 @@ function init_cameras(){ // $page) { init can only be from default page as page
$urls[] = "http://" . $ip . "/autocampars.php?init_stage=SENSORS_SYNCHRONIZED&exit_stage=INITIALIZED"; $urls[] = "http://" . $ip . "/autocampars.php?init_stage=SENSORS_SYNCHRONIZED&exit_stage=INITIALIZED";
} }
$curl_data = curl_multi_start ($urls); $curl_data = curl_multi_start ($urls);
log_msg ($cmd . 'Started curl_multi: '.print_r($urls),0); log_msg ($cmd . 'Started curl_multi: '.print_r($urls,1),0);
} }
// Set most parameters in immediate mode (to protect from i2c 64-command overflow), // Set most parameters in immediate mode (to protect from i2c 64-command overflow),
...@@ -1020,7 +1028,7 @@ function init_cameras(){ // $page) { init can only be from default page as page ...@@ -1020,7 +1028,7 @@ function init_cameras(){ // $page) { init can only be from default page as page
log_msg("2.Trigger $i:\n".file_get_contents('/sys/devices/soc0/elphel393-framepars@0/all_frames')); log_msg("2.Trigger $i:\n".file_get_contents('/sys/devices/soc0/elphel393-framepars@0/all_frames'));
} }
elphel_set_P_arr ($GLOBALS['master_port'], $GLOBALS['trig_pars']); // set other parameters - they will not take effect immediately elphel_set_P_arr ($GLOBALS['master_port'], $GLOBALS['trig_pars']); // set other parameters - they will not take effect immediately
log_msg("Started camera in free running mode"); log_msg("Started camera in free running mode",3);
log_msg("Reached state ".$GLOBALS['camera_state_arr']['state']); log_msg("Reached state ".$GLOBALS['camera_state_arr']['state']);
} else if (!array_key_exists('TRIG_CONDITION',$GLOBALS['trig_pars']) || !$GLOBALS['trig_pars']['TRIG_CONDITION']){ } else if (!array_key_exists('TRIG_CONDITION',$GLOBALS['trig_pars']) || !$GLOBALS['trig_pars']['TRIG_CONDITION']){
...@@ -1037,7 +1045,7 @@ function init_cameras(){ // $page) { init can only be from default page as page ...@@ -1037,7 +1045,7 @@ function init_cameras(){ // $page) { init can only be from default page as page
usleep ($GLOBALS['camera_state_arr']['max_frame_time']); usleep ($GLOBALS['camera_state_arr']['max_frame_time']);
if ($trig_period){ if ($trig_period){
elphel_set_P_value ( $GLOBALS['master_port'], ELPHEL_TRIG_PERIOD, $trig_period, ELPHEL_CONST_FRAME_IMMED); elphel_set_P_value ( $GLOBALS['master_port'], ELPHEL_TRIG_PERIOD, $trig_period, ELPHEL_CONST_FRAME_IMMED);
log_msg("Started camera in periodic self-triggered mode, period = ".(0.00000001*$trig_period)." s"); log_msg("Started camera in periodic self-triggered mode, period = ".(0.00000001*$trig_period)." s",3);
} else { // manually advance frames } else { // manually advance frames
if (!$GLOBALS['camera_state_arr']['frames_skip_more'] > ELPHEL_CONST_FRAME_DEAFAULT_AHEAD){ if (!$GLOBALS['camera_state_arr']['frames_skip_more'] > ELPHEL_CONST_FRAME_DEAFAULT_AHEAD){
$GLOBALS['camera_state_arr']['frames_skip_more'] = ELPHEL_CONST_FRAME_DEAFAULT_AHEAD + 1; $GLOBALS['camera_state_arr']['frames_skip_more'] = ELPHEL_CONST_FRAME_DEAFAULT_AHEAD + 1;
...@@ -1077,8 +1085,9 @@ function init_cameras(){ // $page) { init can only be from default page as page ...@@ -1077,8 +1085,9 @@ function init_cameras(){ // $page) { init can only be from default page as page
log_msg(" trig_period = $trig_period"); log_msg(" trig_period = $trig_period");
log_msg("Remaining GLOBALS[trig_pars] = ".print_r($GLOBALS['trig_pars'],1)); log_msg("Remaining GLOBALS[trig_pars] = ".print_r($GLOBALS['trig_pars'],1));
$enable_echo = !array_key_exists ('REQUEST_METHOD', $_SERVER); $enable_echo = !array_key_exists ('REQUEST_METHOD', $_SERVER);
if ($enable_echo) echo "Waiting slaves to finish initialization: "; if ($enable_echo) echo colorize("Waiting slaves to finish initialization (number left): ",'YELLOW',0);
$results = curl_multi_finish ($curl_data, true, 0, $enable_echo); $results = curl_multi_finish ($curl_data, true, 0, $enable_echo);
if ($enable_echo) echo colorize(" DONE\n",'GREEN',0);
////$results = curl_multi_finish ($curl_data, false, 0, $enable_echo); ////$results = curl_multi_finish ($curl_data, false, 0, $enable_echo);
log_msg ('curl_multi returned: ' . print_r ($results, 1)); log_msg ('curl_multi returned: ' . print_r ($results, 1));
unset ($curl_data); unset ($curl_data);
...@@ -1091,7 +1100,7 @@ function init_cameras(){ // $page) { init can only be from default page as page ...@@ -1091,7 +1100,7 @@ function init_cameras(){ // $page) { init can only be from default page as page
} }
if ($trig_period){ if ($trig_period){
elphel_set_P_value ( $GLOBALS['master_port'], ELPHEL_TRIG_PERIOD, $trig_period, ELPHEL_CONST_FRAME_IMMED); elphel_set_P_value ( $GLOBALS['master_port'], ELPHEL_TRIG_PERIOD, $trig_period, ELPHEL_CONST_FRAME_IMMED);
log_msg("Started camera in periodic mode, period = ".(0.00000001*$trig_period)." s"); log_msg("Started camera in periodic mode, period = ".(0.00000001*$trig_period)." s",3);
} else { // manually advance frames } else { // manually advance frames
if (!$GLOBALS['camera_state_arr']['frames_skip_more'] > ELPHEL_CONST_FRAME_DEAFAULT_AHEAD){ if (!$GLOBALS['camera_state_arr']['frames_skip_more'] > ELPHEL_CONST_FRAME_DEAFAULT_AHEAD){
$GLOBALS['camera_state_arr']['frames_skip_more'] = ELPHEL_CONST_FRAME_DEAFAULT_AHEAD + 1; $GLOBALS['camera_state_arr']['frames_skip_more'] = ELPHEL_CONST_FRAME_DEAFAULT_AHEAD + 1;
...@@ -1196,38 +1205,7 @@ function update_sysfs_sensors() ...@@ -1196,38 +1205,7 @@ function update_sysfs_sensors()
get_sysfs_sensors(); get_sysfs_sensors();
log_msg ("Updated sysfs sensor map"); log_msg ("Updated sysfs sensor map");
} }
/*
def colorize(string, color, bold):
color=color.upper()
attr = []
if color == 'RED':
attr.append('31')
elif color == 'GREEN':
attr.append('32')
elif color == 'YELLOW':
attr.append('33')
elif color == 'BLUE':
attr.append('34')
elif color == 'MAGENTA':
attr.append('35')
elif color == 'CYAN':
attr.append('36')
elif color == 'GRAY':
attr.append('37')
else:
pass
# red
if bold:
attr.append('1')
return '\x1b[%sm%s\x1b[0m' % (';'.join(attr), string)
def log_msg(msg):
with open ('/proc/uptime') as f:
t=float(f.read().split()[0])
with open(LOGFILE,'a') as msg_file:
print (colorize("[%8.2f] %s: "%(t, sys.argv[0].split('/')[-1].split('.')[0]),'YELLOW',0)+msg)
print("[%8.2f] %s"%(t,msg),file=msg_file)
*/
function colorize($string, $color, $bold) { function colorize($string, $color, $bold) {
$color = strtoupper($color); $color = strtoupper($color);
$attr = array(); $attr = array();
...@@ -1253,23 +1231,38 @@ function get_uptime(){ ...@@ -1253,23 +1231,38 @@ function get_uptime(){
function log_open(){ function log_open(){
$GLOBALS['logFile'] = fopen ( $GLOBALS['logFilePath'], "a" ); $GLOBALS['logFile'] = fopen ( $GLOBALS['logFilePath'], "a" );
} }
function log_msg($msg, $any_length = -1) {
/** Log message and optionally print to console */
function log_msg($msg, ///< message to print
$mode = -1) ///< -1 - print only short messages, 0 - never print, 1 - always print, 2 print in bold red (error), 3 - bold white, 4 - bold yellow (warning)
{
// do not output log when in HTTP request mode // do not output log when in HTTP request mode
$ut=get_uptime(); $ut=get_uptime();
if (($any_length != 0) && !array_key_exists ('REQUEST_METHOD', $_SERVER) && (($any_length > 0) || (strlen ($msg) < $GLOBALS['LOG_MAX_ECHO']))) { if (($mode != 0) && !array_key_exists ('REQUEST_METHOD', $_SERVER) && (($mode > 0) || (strlen ($msg) < $GLOBALS['LOG_MAX_ECHO']))) {
// echo '('.date ("G:i:s").' autocampars) ' . $msg . "\n"; switch ($mode) {
printf(colorize(sprintf("[%8.2f] autocampars: ",$ut),"GREEN",0).$msg."\n"); case 2:
$emsg = colorize($msg,'RED',1); // bold red
break;
case 3:
$emsg = colorize($msg,'',1); // bold white
break;
case 4 :
$emsg = colorize($msg, 'YELLOW', 1); // bold white
break;
default:
$emsg = $msg;
}
printf(colorize(sprintf("[%8.2f] autocampars: ",$ut),"GREEN",0).$emsg."\n");
} }
// fwrite ($GLOBALS['logFile'], $msg . " at " . date ("F j, Y, G:i:s") . "\n");
fwrite ($GLOBALS['logFile'], sprintf("%08.2f autocampars: %s\n",$ut,$msg)); // date ("F j, Y, G:i:s") fwrite ($GLOBALS['logFile'], sprintf("%08.2f autocampars: %s\n",$ut,$msg)); // date ("F j, Y, G:i:s")
} }
function log_error($msg) { function log_error($msg) {
log_msg ($msg, 1); log_msg ($msg, 2);
log_close (); log_close ();
exit (1); exit (1);
} }
function log_close() { function log_close() {
log_msg ("Log file saved as " . $GLOBALS['logFilePath'], 1); log_msg ("Log file saved as " . $GLOBALS['logFilePath'], 3);
log_msg ("----------------------------------------------", 0); log_msg ("----------------------------------------------", 0);
fclose ($GLOBALS['logFile']); fclose ($GLOBALS['logFile']);
unset ($GLOBALS['logFile']); // to catch errors unset ($GLOBALS['logFile']); // to catch errors
...@@ -1333,7 +1326,7 @@ function get_application_mode() { ...@@ -1333,7 +1326,7 @@ function get_application_mode() {
if ($xml === false) { if ($xml === false) {
log_msg("10389 board not present"); log_msg("10389 board not present");
} else { } else {
log_msg ( 'Application - ' . (( string ) $xml->app) . ', mode: ' . (( string ) $xml->mode) . "\n" ); log_msg ( 'Application - ' . (( string ) $xml->app) . ', mode: ' . (( string ) $xml->mode) . "\n" , 3);
$GLOBALS ['camera_state_arr'] ['rev10389'] = ''.$xml->rev; $GLOBALS ['camera_state_arr'] ['rev10389'] = ''.$xml->rev;
if ((( string ) $xml->app) != '') { if ((( string ) $xml->app) != '') {
$GLOBALS ['camera_state_arr'] ['application'] = ''.$xml->app; $GLOBALS ['camera_state_arr'] ['application'] = ''.$xml->app;
...@@ -1533,11 +1526,11 @@ function get_remote_states($IPs){ ...@@ -1533,11 +1526,11 @@ function get_remote_states($IPs){
// Wait for both slave modules to be in 'BOOT' state // Wait for both slave modules to be in 'BOOT' state
function wait_slaves_boot($retries){ function wait_slaves_boot($retries){
if (!array_key_exists('REQUEST_METHOD',$_SERVER)){ if (!array_key_exists('REQUEST_METHOD',$_SERVER)){
echo 'Waiting for slaves to come up: '; echo colorize('Waiting for slaves to come up: ','YELLOW',0);
} }
for ($retry = 0; $retry < $retries; $retry++){ for ($retry = 0; $retry < $retries; $retry++){
if (!array_key_exists('REQUEST_METHOD',$_SERVER)){ if (!array_key_exists('REQUEST_METHOD',$_SERVER)){
echo "$retry "; echo colorize("$retry ",'YELLOW',1);
} }
$states = get_remote_states(array( $states = get_remote_states(array(
$GLOBALS['camera_state_arr']['ip_top'], $GLOBALS['camera_state_arr']['ip_top'],
...@@ -1548,14 +1541,12 @@ function wait_slaves_boot($retries){ ...@@ -1548,14 +1541,12 @@ function wait_slaves_boot($retries){
array_key_exists('state', $states[1]) && array_key_exists('state', $states[1]) &&
!array_key_exists('autocampars', $states[0]) && // autocampars.php should already terminate !array_key_exists('autocampars', $states[0]) && // autocampars.php should already terminate
!array_key_exists('autocampars', $states[1])){ !array_key_exists('autocampars', $states[1])){
// if (($states[0]['state']!='BOOT') || ($states[1]['state']!='BOOT')){ break; // wrong state - need system reboot TODO: Add slave reboot by master
break; // wrong state - need system reboot TODO: Add slave reboot by master
// }
} }
} }
} }
if (!array_key_exists('REQUEST_METHOD',$_SERVER)){ if (!array_key_exists('REQUEST_METHOD',$_SERVER)){
echo " Done\n"; echo colorize(" Done\n",'GREEN',0);
} }
log_msg("In wait_slaves_boot() states = ".print_r($states,1)); log_msg("In wait_slaves_boot() states = ".print_r($states,1));
if (($states[0]['state'] == 'BOOT') || ($states[1]['state'] == 'BOOT')) return true; if (($states[0]['state'] == 'BOOT') || ($states[1]['state'] == 'BOOT')) return true;
...@@ -2365,7 +2356,7 @@ function curl_multi_start($urls) { ...@@ -2365,7 +2356,7 @@ function curl_multi_start($urls) {
curl_multi_exec ($curl_mh, $curl_active); curl_multi_exec ($curl_mh, $curl_active);
// we wait for a bit to allow stuff TCP handshakes to complete and so forth... // we wait for a bit to allow stuff TCP handshakes to complete and so forth...
usleep (10000); usleep (10000);
echo "."; // echo ".";
} }
return array ("mh" => $curl_mh,"handles" => $aCurlHandles); return array ("mh" => $curl_mh,"handles" => $aCurlHandles);
} }
...@@ -2381,8 +2372,7 @@ function curl_multi_finish($data, $use_xml=true, $ntry=0, $echo = false) { ...@@ -2381,8 +2372,7 @@ function curl_multi_finish($data, $use_xml=true, $ntry=0, $echo = false) {
$curl_mrc = curl_multi_exec ($curl_mh, $curl_active); $curl_mrc = curl_multi_exec ($curl_mh, $curl_active);
} while ($curl_mrc == CURLM_CALL_MULTI_PERFORM ); } while ($curl_mrc == CURLM_CALL_MULTI_PERFORM );
} }
// if ($echo) echo "$nrep: ($curl_active/$curl_mrc) "; if ($echo) echo colorize("$curl_active ",'YELLOW',1);
if ($echo) echo "$curl_active ";
$nrep++; $nrep++;
if ($ntry && ($nrep > $ntry)) { if ($ntry && ($nrep > $ntry)) {
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment