[REBOL] Re: CORE experimental 2.4.39
From: holger:rebol at: 23-Nov-2000 8:40
On Thu, Nov 23, 2000 at 04:44:51PM +0100, Petr Krenzelok wrote:
> ... sounds impressive ... and Holger .... you're da network man - what about
> description of print mold system/schemes/whatever fields? many interesting
> items, i mean:
> status: none
> [...]
Probably later :-). Some of these are internal, some are for specialized
ports...
> > Accuracy depends on the platform: Mac: one second (unfortunately),
> > Windows: one millisecond, all other platforms: one microsecond.
>
> Mac doesn't offer better timers? :-)
Mac does have better resolution for interval timers, but not for the time
of day timer. AFAIK only MacOS 9 offers a higher resolution for time of
day (1/65536 of a second), and only for certain newer Mac models. We
might support this in a future version. At the moment the requirements for
REBOL on Mac are MacOS 8 or higher and OpenTransport.
> Will also other port types be made asynchronous?
UDP already is (by its very nature): sending is asynchronous, within the
TCP/IP stack. Receiving can block (or not) depending on whether no-wait was
used.
TCP is "officially" asynchronous for receiving only, using no-wait.
Internally it is also asynchronous for connecting, accepting and sending,
mostly controlled through get/set-modes, but the API is not quite
finished yet (in particular for sending). It needs a little more work to
be "nice" to use :).
Higher protocol layers (HTTP, FTP) are currently based on the synchronous
root protocol
, i.e. they are synchronous by themselves. One of the
things we plan to do in the future is implement an "asynchronous root
protocol" which has all of the functionality of the current root protocol
(connect, read, write, proxy support, dialog parsing etc.), but is fully
asynchronous and handler-driven. An asynchronous version of HTTP could then
be implemented on top of that, which would, e.g., allow an arbitrary number
of parallel HTTP downloads in the background. Express already does something
like this, using its own asynchronous implementation.
--
Holger Kruse
[holger--rebol--com]