Rebase against f69c8f018188af49d5a3916f7bb7e3ab984fd3ec.

This commit is contained in:
Zebediah Figura
2021-03-23 17:24:09 -05:00
parent a93d3b6369
commit d2102728fe
5 changed files with 24 additions and 25 deletions

View File

@@ -1,4 +1,4 @@
From f0d0cdcb048b4af8003ba5279bd90293ecc7f8ba Mon Sep 17 00:00:00 2001
From 7e750cacff9e1db07141e02f3763d2b24720a00b Mon Sep 17 00:00:00 2001
From: Zebediah Figura <zfigura@codeweavers.com>
Date: Mon, 6 Jul 2020 12:20:44 -0500
Subject: [PATCH] ntdll: Implement NtClose().
@@ -51,7 +51,7 @@ index 09838e95535..14e52416764 100644
extern NTSTATUS esync_create_semaphore(HANDLE *handle, ACCESS_MASK access,
const OBJECT_ATTRIBUTES *attr, LONG initial, LONG max) DECLSPEC_HIDDEN;
diff --git a/dlls/ntdll/unix/server.c b/dlls/ntdll/unix/server.c
index 971341bf6e0..d8837f6fde0 100644
index 2f1d106a8da..af67e57176a 100644
--- a/dlls/ntdll/unix/server.c
+++ b/dlls/ntdll/unix/server.c
@@ -88,6 +88,7 @@
@@ -62,9 +62,9 @@ index 971341bf6e0..d8837f6fde0 100644
#include "ddk/wdm.h"
WINE_DEFAULT_DEBUG_CHANNEL(server);
@@ -1644,6 +1645,9 @@ NTSTATUS WINAPI NtClose( HANDLE handle )
NTSTATUS ret;
int fd = remove_fd_from_cache( handle );
@@ -1762,6 +1763,9 @@ NTSTATUS WINAPI NtClose( HANDLE handle )
* retrieve it again */
fd = remove_fd_from_cache( handle );
+ if (do_esync())
+ esync_close( handle );
@@ -73,5 +73,5 @@ index 971341bf6e0..d8837f6fde0 100644
{
req->handle = wine_server_obj_handle( handle );
--
2.28.0
2.30.2

View File

@@ -1,4 +1,4 @@
From 1a2cd66380cef9a1f8a7a03f98d5f7af7c889bea Mon Sep 17 00:00:00 2001
From ab9811ec42c11a8dc6f4e756838886bf55b244bb Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sat, 7 Jul 2018 12:57:47 +0200
Subject: [PATCH] server: Create eventfd descriptors for pseudo-fd objects and
@@ -11,7 +11,7 @@ Subject: [PATCH] server: Create eventfd descriptors for pseudo-fd objects and
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/server/fd.c b/server/fd.c
index 38f3ab79226..252236fbb91 100644
index 50f915ed503..36f9770aed3 100644
--- a/server/fd.c
+++ b/server/fd.c
@@ -102,6 +102,7 @@
@@ -64,7 +64,7 @@ index 38f3ab79226..252236fbb91 100644
return fd;
}
@@ -2202,6 +2212,9 @@ void set_fd_signaled( struct fd *fd, int signaled )
@@ -2263,6 +2273,9 @@ void set_fd_signaled( struct fd *fd, int signaled )
if (fd->comp_flags & FILE_SKIP_SET_EVENT_ON_HANDLE) return;
fd->signaled = signaled;
if (signaled) wake_up( fd->user, 0 );
@@ -73,8 +73,8 @@ index 38f3ab79226..252236fbb91 100644
+ esync_clear( fd->esync_fd );
}
/* handler for close_handle that refuses to close fd-associated handles in other processes */
@@ -2233,6 +2246,15 @@ int default_fd_signaled( struct object *obj, struct wait_queue_entry *entry )
/* check if events are pending and if yes return which one(s) */
@@ -2288,6 +2301,15 @@ int default_fd_signaled( struct object *obj, struct wait_queue_entry *entry )
return ret;
}
@@ -91,10 +91,10 @@ index 38f3ab79226..252236fbb91 100644
{
int events = 0;
diff --git a/server/file.h b/server/file.h
index 3b70799a3ec..f332c685add 100644
index 0fa66e5750a..edafb4a1ca7 100644
--- a/server/file.h
+++ b/server/file.h
@@ -104,6 +104,7 @@ extern char *dup_fd_name( struct fd *root, const char *name );
@@ -103,6 +103,7 @@ extern char *dup_fd_name( struct fd *root, const char *name );
extern void get_nt_name( struct fd *fd, struct unicode_str *name );
extern int default_fd_signaled( struct object *obj, struct wait_queue_entry *entry );
@@ -103,7 +103,7 @@ index 3b70799a3ec..f332c685add 100644
extern void default_poll_event( struct fd *fd, int event );
extern void fd_queue_async( struct fd *fd, struct async *async, int type );
diff --git a/server/named_pipe.c b/server/named_pipe.c
index 14596d46f6c..9b8fa97c67e 100644
index d756de18db0..3ed9a543fdc 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -168,7 +168,7 @@ static const struct object_ops pipe_server_ops =
@@ -125,5 +125,5 @@ index 14596d46f6c..9b8fa97c67e 100644
no_signal, /* signal */
pipe_end_get_fd, /* get_fd */
--
2.20.1
2.30.2