Comments (8)
I usually prefer to do an if (!is_resource($res) || feof($res))
check when testing for liveness...
from byte-stream.
I'm curious why it happened, it never happened before. And it's not 100% reproducible.
from byte-stream.
It's really strange. When I put the following code in the line before, it never prints anything, but the warning is still triggered.
if (!\is_resource($stream)) {
\fwrite(\STDERR, "\n" . $this->trace . "\n\n");
}
from byte-stream.
Question: is $data === '' && !feof($res)
ever true? AFAIK, an empty string returned from fread/stream_get_contents should always indicate eof by definiton for layer 4 streams. I'm not sure about tls streams though (as these have overhead not delivered to the reader).
from byte-stream.
By the way, I suspect the issue is related to tls streams and won't ever happen with raw layer 4 streams. Am I correct about this?
from byte-stream.
I'm pretty sure it happens with TLS streams. I'm not sure whether the warning is because of TLS streams. Might also be because of the new process library.
from byte-stream.
Ignore what I just said about the process library. As there's no new version of amphp/file
/ amphp/parallel
yet, that isn't even installed by Artax, yet.
from byte-stream.
This is caused by amphp/parallel
when pthreads
is enabled.
#0 /home/kelunik/GitHub/amphp/artax/vendor/amphp/parallel/lib/Sync/ChannelledSocket.php:22 Amp\ByteStream\ResourceInputStream->__construct()
#1 /home/kelunik/GitHub/amphp/artax/vendor/amphp/parallel/lib/Threading/Internal/Thread.php:88 Amp\Parallel\Sync\ChannelledSocket->__construct()
#2 /home/kelunik/GitHub/amphp/artax/vendor/amphp/amp/lib/Loop/Driver.php:112 Amp\Parallel\Threading\Internal\Thread->Amp\Parallel\Threading\Internal\{closure}()
#3 /home/kelunik/GitHub/amphp/artax/vendor/amphp/amp/lib/Loop/Driver.php:70 Amp\Loop\Driver->tick()
#4 /home/kelunik/GitHub/amphp/artax/vendor/amphp/amp/lib/Loop.php:76 Amp\Loop\Driver->run()
#5 /home/kelunik/GitHub/amphp/artax/vendor/amphp/parallel/lib/Threading/Internal/Thread.php:99 Amp\Loop::run()
#6 Amp\Parallel\Threading\Internal\Thread->run()
from byte-stream.
Related Issues (20)
- Low bandwidth v2.0.0-beta.13, v2.0.0-beta.14 HOT 10
- Consider avoiding stream_socket_shutdown HOT 3
- feof may hang HOT 16
- As soon as ResourceInputStream detects EOF, it ignores subsequent requests to read the resource HOT 15
- Broken symlink in docs HOT 2
- Immediate reads and writes might result in blocking HOT 2
- Modify chunk size on the fly HOT 5
- ResourceOutputStream interrupts writing without consumer giving information what was written/unwritten HOT 11
- Problem writing to stream HOT 6
- InputStreamChain HOT 3
- ResourceOutputStream treats open stream as closed HOT 5
- Can cause infinite loop in caller code HOT 2
- Invalid watcher issue in ResourceInputStream
- LineReader custom delimiter HOT 2
- Ability to read particular length from stream HOT 4
- Assertion fail: Trying to read from a previously fclose()'d resource (Windows) HOT 3
- Add InputStream::close
- Add CancellationToken to InputStream::read
- The url inside the composer.json should be in their secure version? HOT 2
- ReadableResourceStream::read() length should reattempt a read if less data is returned? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from byte-stream.