Rebase against 2b0977fc711e1faadfef69e3a46c2d1848b4826b.

This commit is contained in:
Zebediah Figura
2020-04-09 20:55:11 -05:00
parent 39678da196
commit f8c3c9a6f8
7 changed files with 75 additions and 97 deletions

View File

@@ -1,7 +1,7 @@
From 034af084be3e4867cdf1243148ce5c6be80703ec Mon Sep 17 00:00:00 2001
From 6c3029fe763d6c94016a038d016eb810ad8e38ef Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Fri, 15 Jun 2018 11:01:44 -0500
Subject: [PATCH 40/83] server: Create eventfd descriptors for timers.
Subject: [PATCH] server: Create eventfd descriptors for timers.
---
dlls/ntdll/esync.c | 1 +
@@ -10,7 +10,7 @@ Subject: [PATCH 40/83] server: Create eventfd descriptors for timers.
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/esync.c b/dlls/ntdll/esync.c
index 4adf01a11..9d9d767c4 100644
index 17890f9e1f0..c1d8882d817 100644
--- a/dlls/ntdll/esync.c
+++ b/dlls/ntdll/esync.c
@@ -241,6 +241,7 @@ static NTSTATUS get_waitable_object( HANDLE handle, struct esync **obj )
@@ -22,10 +22,10 @@ index 4adf01a11..9d9d767c4 100644
case ESYNC_QUEUE:
esync = RtlAllocateHeap( GetProcessHeap(), 0, sizeof(*esync) );
diff --git a/server/protocol.def b/server/protocol.def
index 7dbd0a6db..d14fdb607 100644
index 0ab32aaca64..eb80c81d6e6 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -4079,6 +4079,7 @@ enum esync_type
@@ -4080,6 +4080,7 @@ enum esync_type
ESYNC_AUTO_EVENT,
ESYNC_MANUAL_EVENT,
ESYNC_MUTEX,
@@ -34,7 +34,7 @@ index 7dbd0a6db..d14fdb607 100644
ESYNC_QUEUE,
};
diff --git a/server/timer.c b/server/timer.c
index 109aa0ff9..e0760ba11 100644
index 2614e145c40..c3ebd3f52d3 100644
--- a/server/timer.c
+++ b/server/timer.c
@@ -36,6 +36,7 @@
@@ -78,7 +78,7 @@ index 109aa0ff9..e0760ba11 100644
}
}
return timer;
@@ -171,6 +177,9 @@ static int set_timer( struct timer *timer, timeout_t expire, unsigned int period
@@ -172,6 +178,9 @@ static int set_timer( struct timer *timer, timeout_t expire, unsigned int period
{
period = 0; /* period doesn't make any sense for a manual timer */
timer->signaled = 0;
@@ -86,9 +86,9 @@ index 109aa0ff9..e0760ba11 100644
+ if (do_esync())
+ esync_clear( timer->esync_fd );
}
timer->when = (expire <= 0) ? current_time - expire : max( expire, current_time );
timer->when = (expire <= 0) ? expire - monotonic_time : max( expire, current_time );
timer->period = period;
@@ -202,6 +211,13 @@ static int timer_signaled( struct object *obj, struct wait_queue_entry *entry )
@@ -205,6 +214,13 @@ static int timer_signaled( struct object *obj, struct wait_queue_entry *entry )
return timer->signaled;
}
@@ -103,5 +103,5 @@ index 109aa0ff9..e0760ba11 100644
{
struct timer *timer = (struct timer *)obj;
--
2.20.1
2.26.0

View File

@@ -1,4 +1,4 @@
From 31b8b93cd83da65ee4439f0f06fb673257f1850c Mon Sep 17 00:00:00 2001
From 525b78c2da9801372ef32849871859ad4cd16db0 Mon Sep 17 00:00:00 2001
From: Zebediah Figura <z.figura12@gmail.com>
Date: Sun, 10 Jun 2018 23:12:16 -0500
Subject: [PATCH] server: Allocate shared memory segments for semaphores and
@@ -23,7 +23,7 @@ init_server_dir()).
4 files changed, 71 insertions(+)
diff --git a/server/esync.c b/server/esync.c
index 5dd38c42a..fb9d02fc7 100644
index 5dd38c42a4f..fb9d02fc7d2 100644
--- a/server/esync.c
+++ b/server/esync.c
@@ -21,12 +21,20 @@
@@ -137,7 +137,7 @@ index 5dd38c42a..fb9d02fc7 100644
send_client_fd( current->process, esync->fd, reply->handle );
release_object( esync );
diff --git a/server/esync.h b/server/esync.h
index 2687c72e4..aeb58c546 100644
index 2687c72e419..aeb58c5469c 100644
--- a/server/esync.h
+++ b/server/esync.h
@@ -19,6 +19,7 @@
@@ -149,7 +149,7 @@ index 2687c72e4..aeb58c546 100644
void esync_wake_up( struct object *obj );
void esync_clear( int fd );
diff --git a/server/main.c b/server/main.c
index 57463aecc..2f4b3411b 100644
index 483a0c85580..ef4d3d7d835 100644
--- a/server/main.c
+++ b/server/main.c
@@ -36,6 +36,7 @@
@@ -160,7 +160,7 @@ index 57463aecc..2f4b3411b 100644
/* command-line options */
int debug_level = 0;
@@ -141,6 +142,9 @@ int main( int argc, char *argv[] )
@@ -140,6 +141,9 @@ int main( int argc, char *argv[] )
sock_init();
open_master_socket();
@@ -168,13 +168,13 @@ index 57463aecc..2f4b3411b 100644
+ esync_init();
+
if (debug_level) fprintf( stderr, "wineserver: starting (pid=%ld)\n", (long) getpid() );
set_current_time();
init_scheduler();
init_signals();
diff --git a/server/protocol.def b/server/protocol.def
index f0dc0d24d..88a443de4 100644
index eb80c81d6e6..dde81a3ebcf 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -4040,6 +4040,7 @@ struct handle_info
@@ -4053,6 +4053,7 @@ struct handle_info
@REPLY
obj_handle_t handle; /* handle to the object */
int type; /* type of esync object (see below) */
@@ -182,7 +182,7 @@ index f0dc0d24d..88a443de4 100644
@END
/* Open an esync object */
@@ -4052,6 +4053,7 @@ struct handle_info
@@ -4065,6 +4066,7 @@ struct handle_info
@REPLY
obj_handle_t handle; /* handle to the event */
int type; /* type of esync object (above) */
@@ -191,5 +191,5 @@ index f0dc0d24d..88a443de4 100644
/* Retrieve the esync fd for an object. */
--
2.23.0
2.26.0