Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Unified Diff: ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc

Issue 10081020: PPAPI: Make blocking completion callbacks work. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: export AssertLockHeld Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc
diff --git a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc
index c919bf29e998b7510985dc22a7c3d38a16811476..f057da602e4321c5ebf6fdb1130c90f71cca5713 100644
--- a/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc
+++ b/ppapi/shared_impl/private/ppb_tcp_server_socket_shared.cc
@@ -34,30 +34,28 @@ PPB_TCPServerSocket_Shared::AsPPB_TCPServerSocket_Private_API() {
return this;
}
-int32_t PPB_TCPServerSocket_Shared::Listen(const PP_NetAddress_Private* addr,
- int32_t backlog,
- PP_CompletionCallback callback) {
+int32_t PPB_TCPServerSocket_Shared::Listen(
+ const PP_NetAddress_Private* addr,
+ int32_t backlog,
+ scoped_refptr<TrackedCallback> callback) {
if (!addr)
return PP_ERROR_BADARGUMENT;
- if (!callback.func)
- return PP_ERROR_BLOCKS_MAIN_THREAD;
if (state_ != BEFORE_LISTENING)
return PP_ERROR_FAILED;
if (TrackedCallback::IsPending(listen_callback_))
return PP_ERROR_INPROGRESS; // Can only have one pending request.
- listen_callback_ = new TrackedCallback(this, callback);
+ listen_callback_ = callback;
// Send the request, the browser will call us back via ListenACK
SendListen(*addr, backlog);
return PP_OK_COMPLETIONPENDING;
}
-int32_t PPB_TCPServerSocket_Shared::Accept(PP_Resource* tcp_socket,
- PP_CompletionCallback callback) {
+int32_t PPB_TCPServerSocket_Shared::Accept(
+ PP_Resource* tcp_socket,
+ scoped_refptr<TrackedCallback> callback) {
if (!tcp_socket)
return PP_ERROR_BADARGUMENT;
- if (!callback.func)
- return PP_ERROR_BLOCKS_MAIN_THREAD;
if (state_ != LISTENING)
return PP_ERROR_FAILED;
@@ -65,7 +63,7 @@ int32_t PPB_TCPServerSocket_Shared::Accept(PP_Resource* tcp_socket,
return PP_ERROR_INPROGRESS;
tcp_socket_buffer_ = tcp_socket;
- accept_callback_ = new TrackedCallback(this, callback);
+ accept_callback_ = callback;
SendAccept();
return PP_OK_COMPLETIONPENDING;
« no previous file with comments | « ppapi/shared_impl/private/ppb_tcp_server_socket_shared.h ('k') | ppapi/shared_impl/private/tcp_socket_private_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698