Craig Tiller
d4ebeeb7fb
Async server streaming
10 years ago
Craig Tiller
3d6ceb6461
Async server dispatch
10 years ago
Yang Gao
5705fe3fca
Add a cq argument in ClientAsync ctor and give it to the Call
10 years ago
Craig Tiller
1c9a2a91ca
Async API progress
10 years ago
Yang Gao
0b18a8bd4c
typo fix
10 years ago
Yang Gao
106906924f
implement ServerAsyncResponseWriter for unary call
10 years ago
Yang Gao
a38feb9be7
Implement async streaming APIs
10 years ago
Craig Tiller
8c8d0aa1d8
Async API progress
10 years ago
Yang Gao
424bc92e37
implement ClientAsyncX api
10 years ago
Yang Gao
ea222b2001
resolve comments, the context_ member needs protection for thread safety
10 years ago
Craig Tiller
20bc56d890
Multi-completion-queue-server
...
Allow binding a different completion queue to each registered method.
This will allow multiplexing for the C++ server between sync & async
methods more easily.
10 years ago
Yang Gao
3ccdbe9bcc
Make SendInitialMetadata work.
10 years ago
Yang Gao
b492f06c9d
Add SendInitialMetadata() to server streaming interfaces
10 years ago
Yang Gao
fd7199f64e
Add client side WaitForInitialMetadata for streaming.
10 years ago
Craig Tiller
fada7d43b1
Add some documentation
10 years ago
Craig Tiller
a847a8f8bc
Finish streaming, lame client
10 years ago
Craig Tiller
0156752a66
Some streaming progress
10 years ago
Craig Tiller
504bd331ab
Make sure we get a close before stopping the server
10 years ago
Nicolas Noble
d3ae976ac0
Not all Linuxes are equal, and secure_getenv isn't always there.
...
Let's include <features.h> to figure out if the system we're on is supporting secure_getenv, and adapt accordingly.
I suspect we might want to do the same with epoll, as it was added to glibc in 2.3.2, and eventfd has been added to glibc in 2.8.
10 years ago
Craig Tiller
47a573602a
Fix ownership
10 years ago
Yang Gao
968ca530b2
Add trailing metadata to client context and use it.
10 years ago
Craig Tiller
9dcb0f8e1d
Send initial metadata
10 years ago
Yang Gao
2382293226
Make it compile
10 years ago
Yang Gao
f1258c4951
save before the change
10 years ago
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