Merge branch 'devel' into araq
This commit is contained in:
commit
ba8359831a
4 changed files with 14 additions and 9 deletions
|
|
@ -133,8 +133,8 @@ doc.file = """<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
<link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAUAAAAF////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAIAAABbAAAAlQAAAKIAAACbAAAAmwAAAKIAAACVAAAAWwAAAAL///8A////AP///wD///8A////AAAAABQAAADAAAAAYwAAAA3///8A////AP///wD///8AAAAADQAAAGMAAADAAAAAFP///wD///8A////AP///wAAAACdAAAAOv///wD///8A////AP///wD///8A////AP///wD///8AAAAAOgAAAJ3///8A////AP///wAAAAAnAAAAcP///wAAAAAoAAAASv///wD///8A////AP///wAAAABKAAAAKP///wAAAABwAAAAJ////wD///8AAAAAgQAAABwAAACIAAAAkAAAAJMAAACtAAAAFQAAABUAAACtAAAAkwAAAJAAAACIAAAAHAAAAIH///8A////AAAAAKQAAACrAAAAaP///wD///8AAAAARQAAANIAAADSAAAARf///wD///8AAAAAaAAAAKsAAACk////AAAAADMAAACcAAAAnQAAABj///8A////AP///wAAAAAYAAAAGP///wD///8A////AAAAABgAAACdAAAAnAAAADMAAAB1AAAAwwAAAP8AAADpAAAAsQAAAE4AAAAb////AP///wAAAAAbAAAATgAAALEAAADpAAAA/wAAAMMAAAB1AAAAtwAAAOkAAAD/AAAA/wAAAP8AAADvAAAA3gAAAN4AAADeAAAA3gAAAO8AAAD/AAAA/wAAAP8AAADpAAAAtwAAAGUAAAA/AAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADfAAAAPwAAAGX///8A////AAAAAEgAAADtAAAAvwAAAL0AAADGAAAA7wAAAO8AAADGAAAAvQAAAL8AAADtAAAASP///wD///8A////AP///wD///8AAAAAO////wD///8A////AAAAAIcAAACH////AP///wD///8AAAAAO////wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A//8AAP//AAD4HwAA7/cAAN/7AAD//wAAoYUAAJ55AACf+QAAh+EAAAAAAADAAwAA4AcAAP5/AAD//wAA//8AAA=="/>
|
||||||
|
|
||||||
<!-- Google fonts -->
|
<!-- Google fonts -->
|
||||||
<link href='http://fonts.googleapis.com/css?family=Raleway:400,600,900' rel='stylesheet' type='text/css'/>
|
<link href='https://fonts.googleapis.com/css?family=Raleway:400,600,900' rel='stylesheet' type='text/css'/>
|
||||||
<link href='http://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
<link href='https://fonts.googleapis.com/css?family=Source+Code+Pro:400,500,600' rel='stylesheet' type='text/css'/>
|
||||||
|
|
||||||
<!-- CSS -->
|
<!-- CSS -->
|
||||||
<title>$title</title>
|
<title>$title</title>
|
||||||
|
|
|
||||||
|
|
@ -109,12 +109,17 @@ type
|
||||||
Dirent* {.importc: "struct dirent",
|
Dirent* {.importc: "struct dirent",
|
||||||
header: "<dirent.h>", final, pure.} = object ## dirent_t struct
|
header: "<dirent.h>", final, pure.} = object ## dirent_t struct
|
||||||
d_ino*: Ino ## File serial number.
|
d_ino*: Ino ## File serial number.
|
||||||
when defined(linux) or defined(macosx) or defined(bsd):
|
when defined(dragonfly):
|
||||||
|
# DragonflyBSD doesn't have `d_reclen` field.
|
||||||
|
d_type*: uint8
|
||||||
|
elif defined(linux) or defined(macosx) or defined(freebsd) or
|
||||||
|
defined(netbsd) or defined(openbsd):
|
||||||
d_reclen*: cshort ## Length of this record. (not POSIX)
|
d_reclen*: cshort ## Length of this record. (not POSIX)
|
||||||
d_type*: int8 ## Type of file; not supported by all filesystem types.
|
d_type*: int8 ## Type of file; not supported by all filesystem types.
|
||||||
## (not POSIX)
|
## (not POSIX)
|
||||||
when defined(linux) or defined(bsd):
|
when defined(linux) or defined(openbsd):
|
||||||
d_off*: Off ## Not an offset. Value that ``telldir()`` would return.
|
d_off*: Off ## Not an offset. Value that ``telldir()`` would return.
|
||||||
|
|
||||||
d_name*: array[0..255, char] ## Name of entry.
|
d_name*: array[0..255, char] ## Name of entry.
|
||||||
|
|
||||||
Tflock* {.importc: "struct flock", final, pure,
|
Tflock* {.importc: "struct flock", final, pure,
|
||||||
|
|
|
||||||
|
|
@ -418,7 +418,7 @@ proc spawn*(call: expr): expr {.magic: "Spawn".}
|
||||||
proc pinnedSpawn*(id: ThreadId; call: expr): expr {.magic: "Spawn".}
|
proc pinnedSpawn*(id: ThreadId; call: expr): expr {.magic: "Spawn".}
|
||||||
## always spawns a new task on the worker thread with ``id``, so that
|
## always spawns a new task on the worker thread with ``id``, so that
|
||||||
## the 'call' is **always** executed on
|
## the 'call' is **always** executed on
|
||||||
## the this thread. 'call' has to be proc call 'p(...)' where 'p'
|
## the thread. 'call' has to be proc call 'p(...)' where 'p'
|
||||||
## is gcsafe and has a return type that is either 'void' or compatible
|
## is gcsafe and has a return type that is either 'void' or compatible
|
||||||
## with ``FlowVar[T]``.
|
## with ``FlowVar[T]``.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -508,8 +508,8 @@ else:
|
||||||
freeAddrInfo(aiList)
|
freeAddrInfo(aiList)
|
||||||
# for some reason Windows select doesn't return both
|
# for some reason Windows select doesn't return both
|
||||||
# descriptors from first call, so we need to make 2 calls
|
# descriptors from first call, so we need to make 2 calls
|
||||||
discard selector.select(100)
|
discard selector.select(1000)
|
||||||
var rcm = selector.select(100)
|
var rcm = selector.select(1000)
|
||||||
assert(len(rcm) == 2)
|
assert(len(rcm) == 2)
|
||||||
|
|
||||||
var sockAddress = SockAddr()
|
var sockAddress = SockAddr()
|
||||||
|
|
@ -526,7 +526,7 @@ else:
|
||||||
|
|
||||||
selector.updateHandle(client_socket, {Event.Read})
|
selector.updateHandle(client_socket, {Event.Read})
|
||||||
|
|
||||||
var rc2 = selector.select(100)
|
var rc2 = selector.select(1000)
|
||||||
assert(len(rc2) == 1)
|
assert(len(rc2) == 1)
|
||||||
|
|
||||||
var read_count = recv(server2_socket, addr buffer[0], 128, 0)
|
var read_count = recv(server2_socket, addr buffer[0], 128, 0)
|
||||||
|
|
@ -595,7 +595,7 @@ else:
|
||||||
proc event_wait_thread(event: SelectEvent) {.thread.} =
|
proc event_wait_thread(event: SelectEvent) {.thread.} =
|
||||||
var selector = newSelector[int]()
|
var selector = newSelector[int]()
|
||||||
selector.registerEvent(event, 1)
|
selector.registerEvent(event, 1)
|
||||||
var rc = selector.select(500)
|
var rc = selector.select(1500)
|
||||||
if len(rc) == 1:
|
if len(rc) == 1:
|
||||||
inc(counter)
|
inc(counter)
|
||||||
selector.unregister(event)
|
selector.unregister(event)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue