Craig Tiller
bb5227fc39
Allow server to hook calls also, fix crash
10 years ago
David Klempner
fdd42cfa4e
Actually include the port_platform.h epoll change too
10 years ago
Craig Tiller
a5c0e7bc46
Initial metadata fix
10 years ago
Craig Tiller
3b29b566a2
Just use one completion queue per server for delivering completions
...
This simplifies (drastically) the polling story, although will slightly
complicate mixing sync & async servers - but we're not there yet.
10 years ago
Craig Tiller
854a30c73a
More implementation
10 years ago
Yang Gao
eb8e7cd922
Implement FinalizeResult
10 years ago
Craig Tiller
04c8ff0245
Fix FinalizeResult signature
10 years ago
Craig Tiller
c416577636
Server progress
10 years ago
Yang Gao
6d6b90376b
Release write buffer in FinalizeResult
10 years ago
Yang Gao
d5a04bdc6e
Implement FillOps
10 years ago
David Klempner
baced4def0
Epoll based multipoller
...
This is a multipoller based on epoll rather than poll.
Note that this implementation is aimed at correctness rather than
performance, although it should immediately have better scalability to
large numbers of FDs, both due to epoll's O(1) sized API and due to not
needing to wake up polling threads to do interest set changes.
One notable difference here is that we directly attach a wakeup fd
rather than using the freelisting kick mechanism that the poll() based
implementations use, because modifying the epoll set to use a different
kick fd each time isn't free.
10 years ago
Craig Tiller
cbd0485088
Simplify server ready for async path
10 years ago
Craig Tiller
8e8fd89faf
Allow two completion queues on request call
...
One for the new rpc notification, the other is bound to the new call.
This will make async c++ soooo much easier.
10 years ago
Yang Gao
7eb7d75c51
call implementation before the meeting
10 years ago
Craig Tiller
24be0f79e2
Rewrite server request startup path
...
Stub in registered methods, cleanup to the point I understand this code
again.
10 years ago
Craig Tiller
20f4af2e36
Move call.h -> impl/call.h
10 years ago
Craig Tiller
f9a06a78cb
Remove temp code
10 years ago
Craig Tiller
549a74daa8
Rephrase async streaming methods
...
To ensure that the CallOpBuffers stay alive until completion.
10 years ago
Craig Tiller
0a5bcbc632
Add some documentation
10 years ago
Craig Tiller
80e00a8c63
Stub out unary call wrapper
10 years ago
Craig Tiller
de917062ec
Refine completion queue
10 years ago
Craig Tiller
7630205bdf
Add missing ifdef
10 years ago
Craig Tiller
5319164875
Cleanup
10 years ago
Craig Tiller
b470169252
Remove more unnecessary files
10 years ago
Yang Gao
75ec2b191c
more implementation and all async signatures
10 years ago
Craig Tiller
40fcdaff0a
Remove stream_context
10 years ago
Craig Tiller
1d2e21962e
Server progress
10 years ago
Craig Tiller
061754a483
Cleanup some cruft
10 years ago
Craig Tiller
1801e420de
Fix include paths
10 years ago
Yang Gao
8a3bbb5c55
ServerReader with new API
10 years ago
Craig Tiller
0db1befae1
Progress
10 years ago
Yang Gao
5f4f0c3170
remove explicit
10 years ago
Craig Tiller
14a65f9760
Further progress
10 years ago
Craig Tiller
2dff17d33b
Async API declarations
10 years ago
Craig Tiller
df2c957eee
Fix compile error
10 years ago
Craig Tiller
7f78d71b8d
Add initial metadata stub
10 years ago
Craig Tiller
50950712c1
Further progress
10 years ago
Craig Tiller
c4965751a0
Starting to scratch out the API
10 years ago
Craig Tiller
6135107e4a
New completion queue
10 years ago
Craig Tiller
c56b2cb33c
Add comments
10 years ago
Craig Tiller
4f9727326e
Fix memory usage
10 years ago
Craig Tiller
b7800c1544
Add some comments
10 years ago
Julien Boeuf
7413f10832
Adding linux specific env implementation.
10 years ago
Nicolas "Pixel" Noble
ee0c96c7fc
Second draft of the win32 implementation.
...
-) Client code is now threadsafe.
-) The echo_client code runs and succeeds.
10 years ago
David Klempner
0c61dc52a1
Remove the platform specific time headers
10 years ago
David Klempner
c15622b95c
Remove timeval functions
...
They only had one caller, which could easily be converted to use
timespec instead of timeval.
10 years ago
David Klempner
9b60fa3acd
Make gpr_timespec no longer be a typedef for struct timespec in posix
...
The problem is that for the typedef to work we need _POSIX_C_SOURCE to
be defined properly before any file that uses gpr_timespec includes
anything. This is extremely fragile unless we change CFLAGS, which
probably isn't worth doing for this.
10 years ago
Craig Tiller
ea61b07800
Updated the first test (which fails)
10 years ago
Nicolas "Pixel" Noble
21f627ad0a
First draft of the win32 implementation of iomgr.
...
Caveats:
-) The win32 pollset isn't threadsafe (yet).
-) Only client code is implemented.
-) Only very simple code has been tested with it yet.
10 years ago
Julien Boeuf
4a0a394758
Fixing tsan errors in OpenSSL ( #319 )
...
- Added cross-platform implementation of gpr_thd_currentid();
- OpenSSL still shows some TSAN errors on OPENSSL_cleanse which is
inherently not thread-safe but this should not matter:
see
http://stackoverflow.com/questions/26433772/why-does-openssl-cleanse-look-so-complex-and-thread-unsafe
10 years ago