Comments (6)
Note that when I ported websockets to 8sync I'm pretty sure I fixed this very problem also. Remember that guile-websockets wasn't tested originally against an async environment.
I'll be working on getting the fixes I did to guile-websockets when I bundled it with 8sync upstream soon.
from fibers.
Any help on this?
from fibers.
@amirouche: I checked out your repo, and updated guile to 2.2;
After some very crude (display ...) based debugging, it seems that your code as-is blocks in:
(define (read-frame-maybe)
(and (not (port-eof? client-socket))
(read-frame client-socket)))
Some further research let me to:
-- Scheme Procedure: port-eof? input-port
Equivalent to ‘(eof-object? (lookahead-u8 INPUT-PORT))’.
-- Scheme Procedure: get-u8 port
-- C Function: scm_get_u8 (port)
Return an octet read from PORT, an input port, blocking as
necessary, or the end-of-file object.
-- Scheme Procedure: lookahead-u8 port
-- C Function: scm_lookahead_u8 (port)
Like ‘get-u8’ but does not update PORT’s position to point past the
octet.
So I guess you are calling this on a port that is waiting to be filled (whereas the other side of this story is probably also waiting on a reply first).
p.s. I do not see the 7-times-refresh behaviour you mention.
from fibers.
@cwebber let me know when it's pushed upstream please.
from fibers.
@cwebber any news? Is it possible to use 8sync to create a web application using websockets? tia
from fibers.
@amirouche Yes, the MUD you see on the video on https://www.gnu.org/software/8sync/ is using websockets + 8sync, and so is https://test.activitypub.rocks/
However 8sync is not really the right home for it. I spoke to David Thompson recently and suggested we fold websockets support into guile-webutils and he supported that idea. Once we move support there you could use websockets with fibers or 8sync (which is going to use Fibers in the next release anyhow) or whatever event loop you want.
from fibers.
Related Issues (20)
- Possibly wrong usage of atomic-box-set!
- Lots of unmerged pull reqs!? HOT 4
- Unknown meta command: fibers HOT 2
- In procedure pipe: Too many open files HOT 6
- Infinite loops on uncaught exceptions HOT 5
- Guix build guile-fibers test fails: Too many heap sections. HOT 2
- epoll instance is dead HOT 6
- fibers does not build without epoll HOT 4
- Memory leak on context switches HOT 9
- fibers.scm uses deprecated bitvector-set! HOT 7
- README.md doesn't document dependencies
- fibers depends on gnulib HOT 1
- configure.ac has two operating systems hard-coded, posix-clocks-foo.scm related? HOT 4
- `race-until` test runs forever (1.2.0 + affinity patch, NetBSD 9 amd64) HOT 1
- Cannot print backtraces within a fiber HOT 13
- [doc] clarify the use of dynamic-wind, probably in the Barriers chapter HOT 1
- Guile deprecation warning due to bit-count HOT 9
- Fibers wait can forever on a file descriptor once it has been closed HOT 1
- 'get-message' continuation fired more than once? HOT 13
- On GNU/Hurd, 'time_units_per_microsec' is zero 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 fibers.