diff options
-rw-r--r-- | erts/emulator/nifs/common/socket_nif.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/erts/emulator/nifs/common/socket_nif.c b/erts/emulator/nifs/common/socket_nif.c index 83fb4bcf7f..8e679ec6ae 100644 --- a/erts/emulator/nifs/common/socket_nif.c +++ b/erts/emulator/nifs/common/socket_nif.c @@ -15211,9 +15211,6 @@ ERL_NIF_TERM recv_check_fail(ErlNifEnv* env, { ERL_NIF_TERM res; - // cnt_inc(&descP->readFails, 1); - SOCK_CNT_INC(env, descP, sockRef, atom_read_fails, &descP->readFails, 1); - FREE_BIN(buf1P); if (buf2P != NULL) FREE_BIN(buf2P); if (saveErrno == ECONNRESET) { @@ -15222,6 +15219,10 @@ ERL_NIF_TERM recv_check_fail(ErlNifEnv* env, SSDBG( descP, ("SOCKET", "recv_check_fail -> closed\r\n") ); + // This is a bit overkill (to count here), but just in case... + // cnt_inc(&descP->readFails, 1); + SOCK_CNT_INC(env, descP, sockRef, atom_read_fails, &descP->readFails, 1); + res = recv_check_fail_closed(env, descP, sockRef, recvRef); } else if ((saveErrno == ERRNO_BLOCK) || @@ -15236,6 +15237,9 @@ ERL_NIF_TERM recv_check_fail(ErlNifEnv* env, SSDBG( descP, ("SOCKET", "recv_check_fail -> errno: %d\r\n", saveErrno) ); + // cnt_inc(&descP->readFails, 1); + SOCK_CNT_INC(env, descP, sockRef, atom_read_fails, &descP->readFails, 1); + res = recv_check_fail_gen(env, descP, saveErrno, sockRef); } @@ -15400,7 +15404,7 @@ ERL_NIF_TERM recv_check_partial_done(ErlNifEnv* env, descP->rNumCnt = 0; // cnt_inc(&descP->readPkgCnt, 1); - SOCK_CNT_INC(env, descP, sockRef, atom_read_pkg, &descP->readPkgCnt, read); + SOCK_CNT_INC(env, descP, sockRef, atom_read_pkg, &descP->readPkgCnt, 1); // cnt_inc(&descP->readByteCnt, read); SOCK_CNT_INC(env, descP, sockRef, atom_read_byte, &descP->readByteCnt, read); |