summaryrefslogtreecommitdiff
path: root/deps/uv/src/win
diff options
context:
space:
mode:
Diffstat (limited to 'deps/uv/src/win')
-rw-r--r--deps/uv/src/win/fs.c9
-rw-r--r--deps/uv/src/win/pipe.c4
-rw-r--r--deps/uv/src/win/thread.c1
-rw-r--r--deps/uv/src/win/util.c5
4 files changed, 16 insertions, 3 deletions
diff --git a/deps/uv/src/win/fs.c b/deps/uv/src/win/fs.c
index b90eaa7548..11c7c13edd 100644
--- a/deps/uv/src/win/fs.c
+++ b/deps/uv/src/win/fs.c
@@ -439,8 +439,15 @@ void fs__open(uv_fs_t* req) {
* does. We indiscriminately use all the sharing modes, to match
* UNIX semantics. In particular, this ensures that the file can
* be deleted even whilst it's open, fixing issue #1449.
+ * We still support exclusive sharing mode, since it is necessary
+ * for opening raw block devices, otherwise Windows will prevent
+ * any attempt to write past the master boot record.
*/
- share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
+ if (flags & UV_FS_O_EXLOCK) {
+ share = 0;
+ } else {
+ share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE;
+ }
switch (flags & (UV_FS_O_CREAT | UV_FS_O_EXCL | UV_FS_O_TRUNC)) {
case 0:
diff --git a/deps/uv/src/win/pipe.c b/deps/uv/src/win/pipe.c
index 642213bc88..1a7c4dc15e 100644
--- a/deps/uv/src/win/pipe.c
+++ b/deps/uv/src/win/pipe.c
@@ -31,8 +31,8 @@
#include "stream-inl.h"
#include "req-inl.h"
-#include <AclAPI.h>
-#include <AccCtrl.h>
+#include <aclapi.h>
+#include <accctrl.h>
typedef struct uv__ipc_queue_item_s uv__ipc_queue_item_t;
diff --git a/deps/uv/src/win/thread.c b/deps/uv/src/win/thread.c
index 30b2d7793c..9eaad77cd0 100644
--- a/deps/uv/src/win/thread.c
+++ b/deps/uv/src/win/thread.c
@@ -182,6 +182,7 @@ int uv_thread_join(uv_thread_t *tid) {
else {
CloseHandle(*tid);
*tid = 0;
+ MemoryBarrier(); /* For feature parity with pthread_join(). */
return 0;
}
}
diff --git a/deps/uv/src/win/util.c b/deps/uv/src/win/util.c
index 2aec9f8dfe..3100bc23ad 100644
--- a/deps/uv/src/win/util.c
+++ b/deps/uv/src/win/util.c
@@ -331,6 +331,11 @@ uint64_t uv_get_total_memory(void) {
}
+uv_pid_t uv_os_getpid(void) {
+ return GetCurrentProcessId();
+}
+
+
uv_pid_t uv_os_getppid(void) {
int parent_pid = -1;
HANDLE handle;