Prechádzať zdrojové kódy

Merge pull request #7645 from y-zeng/fix_ev_epoll_linux

Fix fd_orphan in ev_epoll_linux.c
kpayson64 9 rokov pred
rodič
commit
bacaceb543
1 zmenil súbory, kde vykonal 3 pridanie a 1 odobranie
  1. 3 1
      src/core/lib/iomgr/ev_epoll_linux.c

+ 3 - 1
src/core/lib/iomgr/ev_epoll_linux.c

@@ -928,7 +928,8 @@ static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
     fd->polling_island = NULL;
   }
 
-  grpc_exec_ctx_sched(exec_ctx, fd->on_done_closure, error, NULL);
+  grpc_exec_ctx_sched(exec_ctx, fd->on_done_closure, GRPC_ERROR_REF(error),
+                      NULL);
 
   gpr_mu_unlock(&fd->mu);
   UNREF_BY(fd, 2, reason); /* Drop the reference */
@@ -940,6 +941,7 @@ static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
     PI_UNREF(exec_ctx, unref_pi, "fd_orphan");
   }
   GRPC_LOG_IF_ERROR("fd_orphan", GRPC_ERROR_REF(error));
+  GRPC_ERROR_UNREF(error);
 }
 
 static grpc_error *fd_shutdown_error(bool shutdown) {