Professional Web Applications Themes

Timeouts for blocking calls - PHP Development

I am attempting to write to a named pipe using fwrite(). Unfortunately fwrite() will block until the pipe is read by an external program. This call does not have a timeout parameter and I have not seen any equivalent calls that do. I have been looking for a callback routine so that fwrite() does not block forever. Something like this: function no_reader() { echo "Could not write to pipe"; exit(-1); } $pipe = fopen("/tmp/pipe","w"); $cb = callback_new("no_reader", 5); // Call no_reader() in 5 seconds. fwrite($pipe,"some text"); callback_destroy($cb); // Stop the callback because fwrite() returned. Is there anything in PHP that ...

  1. #1

    Default Timeouts for blocking calls

    I am attempting to write to a named pipe using fwrite(). Unfortunately
    fwrite() will block until the pipe is read by an external program. This
    call does not have a timeout parameter and I have not seen any equivalent
    calls that do. I have been looking for a callback routine so that fwrite()
    does not block forever. Something like this:

    function no_reader() {
    echo "Could not write to pipe";
    exit(-1);
    }

    $pipe = fopen("/tmp/pipe","w");
    $cb = callback_new("no_reader", 5); // Call no_reader() in 5 seconds.
    fwrite($pipe,"some text");
    callback_destroy($cb); // Stop the callback because fwrite() returned.

    Is there anything in PHP that can do something like this?
    --
    Steven Farlie
    Steven Farlie Guest

  2. #2

    Default Re: Timeouts for blocking calls

    Hi Steven!

    On Tue, 09 Sep 2003 16:17:37 +0200, Steven Farlie
    <steven.farlieblip.anu.blip.edu.blop.au> wrote:
    >I am attempting to write to a named pipe using fwrite(). Unfortunately
    >fwrite() will block until the pipe is read by an external program. This
    >call does not have a timeout parameter and I have not seen any equivalent
    >calls that do. I have been looking for a callback routine so that fwrite()
    >does not block forever. Something like this:
    >
    >function no_reader() {
    > echo "Could not write to pipe";
    > exit(-1);
    >}
    >
    >$pipe = fopen("/tmp/pipe","w");
    >$cb = callback_new("no_reader", 5); // Call no_reader() in 5 seconds.
    >fwrite($pipe,"some text");
    >callback_destroy($cb); // Stop the callback because fwrite() returned.
    >
    >Is there anything in PHP that can do something like this?

    I think I saw the functionality in the socket functions, but they also
    seem to be very buggy. I would recommend a perl or c wrapper for this.

    HTH, Jochen

    --
    PHP DB Edit Toolkit -- PHP scripts for building
    database editing interfaces.
    [url]http://sourceforge.net/projects/phpdbedittk/[/url]
    Jochen Daum Guest

Similar Threads

  1. Connection timeouts
    By ZoombyWoof in forum MySQL
    Replies: 2
    Last Post: March 4th, 04:21 PM
  2. Asynchronous web service calls, will you still have timeouts
    By Norton in forum ASP.NET Web Services
    Replies: 1
    Last Post: August 3rd, 06:36 AM
  3. Replies: 1
    Last Post: February 12th, 12:37 PM
  4. Will Thread blocking in read() leads to process blocking?
    By Loic Domaigne in forum UNIX Programming
    Replies: 4
    Last Post: July 23rd, 12:36 PM
  5. Cwd Module - Timeouts
    By George C. Demetros in forum PERL Modules
    Replies: 2
    Last Post: July 23rd, 11:58 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139