Commit Graph

35 Commits

Author SHA1 Message Date
48fb710f35
nexgb: post-merge fixups and cleanups
AUTHORS, CONTRIBUTORS: still useful, add people from git log, clean up.

LICENSE: Google doesn't really grant you shit anymore.  The EU doesn't
have software patents either, so it doesn't affect me directly.

README, doc.go: erase mentions of unmaintained xgbutil.
2018-09-08 19:51:53 +02:00
Andrew Gallant
1614b58c42
fix structs with field name of 'Bytes'
(it conflict with a method of the same name that is generated for
all such structs)
2018-09-08 16:49:25 +02:00
aarzilli
becaf43dcb
Read/Write mutex for Extensions map 2018-09-08 16:49:24 +02:00
aarzilli
baff8c1906
sendRequest reads req.buf after closing req.seq
NewRequest says you can avoid reallocating a new buffer for each request by calling it directly.
This is not true if req.seq is closed before req.buf is read.
2018-09-08 16:49:24 +02:00
Andrew Gallant
5451e59f88
Remove panics/fatal errors.
Fixes #9.

This makes shutdown a little more graceful, but there's more
work to be done here. Namely, all outstanding cookies need to
be given the error, otherwise they will block forever.
2018-09-08 16:49:24 +02:00
Bryan Matsuo
dd00568d44
assign a sequence id to the cookie before returning from Conn.NewRequest 2018-09-08 16:49:23 +02:00
fangyuanziti
a1d1151017
add a new api: NewConnNet 2018-09-08 16:49:23 +02:00
Axel Wagner
2104b8fcdf
Export the logger (again)
Just enabling or disabling logging falls short of the power of
interfaces of go. A user is forced to either accept the logging to
stderr in the format defined by xgb or disable logging alltogether. By
exporting the logger, we can actually let the user decide where to log
in what format.
2018-09-08 16:49:18 +02:00
Andrew Gallant
5d96993ee1
Fixed a nasty bug where closing could cause ReadFull to crash
the program. Close #4.
2018-09-08 16:49:16 +02:00
Andrew Gallant
3658686aee
gofmt 2018-09-08 16:49:16 +02:00
Andrew Gallant
e635de5e1d
Provide access to the X display number in the XGB Conn. 2018-09-08 16:49:16 +02:00
Andrew Gallant (Ocelot)
269a7b9cc6
The hack continues. I've increased the event channel buffer. I know I'm
goofing here.

What I'd personally like to do is just use an "infinite" channel. That
is, push the limit of how many events can be processed to the machine
and not set an artificial limit in XGB. Some day...
2018-09-08 16:49:15 +02:00
Andrew Gallant (Ocelot)
08275ebda8
Doc fixes and stop exporting ReplyChecked and ReplyUnchecked 2018-09-08 16:49:15 +02:00
Andrew Gallant (Ocelot)
58bb2572c5 Doc touchups. 2012-05-26 18:22:25 -04:00
Andrew Gallant (Ocelot)
acb84171e5 Add new logger type so that it can be shut off. 2012-05-16 23:57:26 -04:00
Andrew Gallant (Ocelot)
424f293671 export logger so it can be disabled 2012-05-16 23:26:19 -04:00
Andrew Gallant (Ocelot)
45a4ee92eb close channels. 2012-05-12 22:17:10 -04:00
Andrew Gallant (Ocelot)
6bdfd1d1b1 A more idiomatic way of trying a non-blocking send on a buffered channel
and falling back to a blocking send inside a goroutine.

This really needs to be fixed. The situation only arises when events are
sent and aren't pulled off the channel using {Wait,Poll}ForEvent.
Namely, if the event send blocks, the entire program will deadlock.

Using a goroutine is not ideal because we lose a guarantee of order:
that events are processed in the order of their arrival. However, it
seems OK as a temporary band-aide for a situation that probably doesn't
arise too often.

What I need to do is implement a dynamic queue. Here is a reference
implementation: http://play.golang.org/p/AiHBsxTFpj
2012-05-12 21:55:57 -04:00
Andrew Gallant (Ocelot)
24fef4062a docs 2012-05-12 21:36:31 -04:00
Andrew Gallant (Ocelot)
c00652934e better docs 2012-05-10 23:57:34 -04:00
Andrew Gallant (Ocelot)
0c50dc6241 a huge commit. splitting extensions into their own sub-packages. 2012-05-10 17:01:42 -04:00
Andrew Gallant (Ocelot)
e239bb3c68 make resource ids their own individual types. last commit before overhaul to sub-packages 2012-05-10 12:47:19 -04:00
Andrew Gallant (Ocelot)
5d64f69030 fixed nasty bug that made XGB not thread safe 2012-05-08 23:03:45 -04:00
Andrew Gallant (Ocelot)
62b293c937 use a custom logger so we don't stomp all over the global log configuration 2012-05-08 00:27:00 -04:00
Andrew Gallant (Ocelot)
e256da00b1 gofmt 2012-05-07 21:58:43 -04:00
Andrew Gallant (Ocelot)
13d598e5e7 more clean up. use log instead of fmt.Print to stderr. bug fix for event blocking (a hack fix for now). 2012-05-07 21:58:33 -04:00
Andrew Gallant (Ocelot)
dc48249e1a lots of docs and examples 2012-05-07 04:09:19 -04:00
Andrew Gallant (Ocelot)
3bf376bd66 80 cols 2012-05-07 01:11:41 -04:00
Andrew Gallant (Ocelot)
fd30f1512a added tests 2012-05-07 01:00:45 -04:00
Andrew Gallant (Ocelot)
369ad0d33e extensions are working! extensions are working! 2012-05-05 18:22:24 -04:00
Andrew Gallant (Ocelot)
4a7b05be36 oh momma. a lot of modifications and it appears to be working. w00t. 2012-05-05 02:56:15 -04:00
Andrew Gallant (Ocelot)
a5d4ad6c9d reworking xgb. cleaned up connection stuff a little. making new xid generation cleaner and use goroutines for it. 2012-05-03 22:47:50 -04:00
Andrew Gallant (Ocelot)
5cdae5950c holy toldeo... things might actually be working 2012-05-03 01:00:01 -04:00
Andrew Gallant (Ocelot)
6bf0191fb0 progress. still not working. this is incredibly difficult. 2012-04-29 03:38:29 -04:00
Andrew Gallant (Ocelot)
52a21b415a initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00