diff options
author | Bram Moolenaar <Bram@vim.org> | 2011-01-04 18:11:43 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2011-01-04 18:11:43 +0100 |
commit | 870b05c4c087980a14d180ea680cb0ff35d62331 (patch) | |
tree | 595fffbb1317a8f373ca3b6bd4b8f00a020f91d9 /src/netbeans.c | |
parent | d91f704b030647fbaf6eedcb6492f2c231ad635a (diff) | |
download | vim-git-870b05c4c087980a14d180ea680cb0ff35d62331.tar.gz |
updated for version 7.3.096v7.3.096
Problem: "gvim -nb" is not interruptable. Leaking file descriptor on
netbeans connection error.
Solution: Check for CTRL-C typed. Free file descriptor. (Xavier de Gaye)
Diffstat (limited to 'src/netbeans.c')
-rw-r--r-- | src/netbeans.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/netbeans.c b/src/netbeans.c index 71b664cbf..01cb5fbe2 100644 --- a/src/netbeans.c +++ b/src/netbeans.c @@ -321,6 +321,7 @@ netbeans_connect(char *params, int doabort) { nbdebug(("error in gethostbyname() in netbeans_connect()\n")); PERROR("gethostbyname() in netbeans_connect()"); + sock_close(sd); goto theend; } memcpy((char *)&server.sin_addr, host->h_addr, host->h_length); @@ -370,15 +371,12 @@ netbeans_connect(char *params, int doabort) || (errno == EINTR))) { nbdebug(("retrying...\n")); - sleep(5); - if (!doabort) + mch_delay(3000L, TRUE); + ui_breakcheck(); + if (got_int) { - ui_breakcheck(); - if (got_int) - { - errno = EINTR; - break; - } + errno = EINTR; + break; } if (connect(sd, (struct sockaddr *)&server, sizeof(server)) == 0) @@ -393,6 +391,7 @@ netbeans_connect(char *params, int doabort) /* Get here when the server can't be found. */ nbdebug(("Cannot connect to Netbeans #2\n")); PERROR(_("Cannot connect to Netbeans #2")); + sock_close(sd); if (doabort) getout(1); goto theend; @@ -403,6 +402,7 @@ netbeans_connect(char *params, int doabort) { nbdebug(("Cannot connect to Netbeans\n")); PERROR(_("Cannot connect to Netbeans")); + sock_close(sd); if (doabort) getout(1); goto theend; |