Perl Lock

Тема в разделе "Perl программирование", создана пользователем VanJo, 15 сен 2012.

  1. VanJo

    VanJo Гость

    Люди знающие, подскажите, отчего мой скрипт под виндовс работает правильно,
    а если записать его на сервер (UNIX) то выдает ошибку, т.е. не работает ни lock, ни семафор,
    и вместо 3 сек. выполняется за 2 сек?
    Код (Text):
    #!/usr/bin/perl
    use strict; use CGI::Carp qw(fatalsToBrowser);
    use Thread; #use threads;
    use Thread qw/yield/; print "Content-type: text/html\n\n"; print "<html>\n";
    my $lock : shared=0; #$lock = 0;
    use Thread::Semaphore;
    my $s = new Thread::Semaphore;
    sub f {
    if($lock ==0){yield;$lock++;}
    lock $lock; #while($lock){}
    $s->down;
    $a++;
    my ($a)=@_;
    print time, " WAIT $a<br>\n";
    sleep 1;
    print time," DONE $a<br>\n";
    #$lock--;
    $s->up;
    return time," RESULT $a<br>\n";
    }
    my $a =new threads(\&f, 'A'); print time, "<br>\n";
    my $b =new threads(\&f, 'B'); print time, "<br>\n";
    print time, $a->join;
    print time, " 1111 ", scalar threads->list , "<br>\n";
    print time, $b->join;
    print time, " 2222 ", scalar threads->list , "<br>\n";
    print $lock;
     
  2. chorny

    chorny Member

    Регистрация:
    21 дек 2010
    Сообщения:
    7
    Симпатии:
    0
    Какую ошибку выдает?

    На сервере Perl откомпилирован с поддержкой ithreads?
     
  3. VanJo

    VanJo Гость

    Файл с сервера ошибку вообще не показывает, просто выполняется за эти самые 2 сек.
    Если бы выдал ошибку на строке use Thread; или на строке use threads; или на строке use Thread qw/yield/; то обозначилась бы проблема.

    Следующий код:
    use Config;
    print "Content-type: text/html\n\n"; print "<html>\n";
    if ($Config{usethreads}) { # We have threads
    print 1,"<br>\n";
    } else {
    print 2,"<br>\n";
    }
    пишет с сервера 1, т.е. как бы поддержка тредов есть.
     
Загрузка...
Похожие Темы - Perl Lock
  1. Anna_Kashina
    Ответов:
    0
    Просмотров:
    136
  2. SvetlanaL
    Ответов:
    0
    Просмотров:
    409
  3. SvetlanaL
    Ответов:
    0
    Просмотров:
    423
  4. SvetlanaL
    Ответов:
    0
    Просмотров:
    504
  5. SvetlanaL
    Ответов:
    0
    Просмотров:
    606

Поделиться этой страницей