projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #941 from upsilon/fix-layoutsettings-setter
[mono.git]
/
mono
/
metadata
/
tpool-epoll.c
diff --git
a/mono/metadata/tpool-epoll.c
b/mono/metadata/tpool-epoll.c
index 82e0bfe8a353c4834440cc37c7916aaa60c732fb..41242c6b5e9fda1afca864de7c71a3ecc6d0df82 100644
(file)
--- a/
mono/metadata/tpool-epoll.c
+++ b/
mono/metadata/tpool-epoll.c
@@
-54,11
+54,13
@@
static void
tp_epoll_modify (gpointer p, int fd, int operation, int events, gboolean is_new)
{
SocketIOData *socket_io_data;
tp_epoll_modify (gpointer p, int fd, int operation, int events, gboolean is_new)
{
SocketIOData *socket_io_data;
- socket_io_data = p;
- tp_epoll_data *data = socket_io_data->event_data;
+ tp_epoll_data *data;
struct epoll_event evt;
int epoll_op;
struct epoll_event evt;
int epoll_op;
+ socket_io_data = p;
+ data = socket_io_data->event_data;
+
memset (&evt, 0, sizeof (evt));
evt.data.fd = fd;
if ((events & MONO_POLLIN) != 0)
memset (&evt, 0, sizeof (evt));
evt.data.fd = fd;
if ((events & MONO_POLLIN) != 0)
@@
-95,7
+97,6
@@
tp_epoll_wait (gpointer p)
{
SocketIOData *socket_io_data;
int epollfd;
{
SocketIOData *socket_io_data;
int epollfd;
- MonoInternalThread *thread;
struct epoll_event *events, *evt;
int ready = 0, i;
gpointer async_results [EPOLL_NEVENTS * 2]; // * 2 because each loop can add up to 2 results here
struct epoll_event *events, *evt;
int ready = 0, i;
gpointer async_results [EPOLL_NEVENTS * 2]; // * 2 because each loop can add up to 2 results here
@@
-105,7
+106,6
@@
tp_epoll_wait (gpointer p)
socket_io_data = p;
data = socket_io_data->event_data;
epollfd = data->epollfd;
socket_io_data = p;
data = socket_io_data->event_data;
epollfd = data->epollfd;
- thread = mono_thread_internal_current ();
events = g_new0 (struct epoll_event, EPOLL_NEVENTS);
while (1) {
events = g_new0 (struct epoll_event, EPOLL_NEVENTS);
while (1) {
@@
-113,8
+113,7
@@
tp_epoll_wait (gpointer p)
do {
if (ready == -1) {
do {
if (ready == -1) {
- if (THREAD_WANTS_A_BREAK (thread))
- mono_thread_interruption_checkpoint ();
+ check_for_interruption_critical ();
}
ready = epoll_wait (epollfd, events, EPOLL_NEVENTS, -1);
} while (ready == -1 && errno == EINTR);
}
ready = epoll_wait (epollfd, events, EPOLL_NEVENTS, -1);
} while (ready == -1 && errno == EINTR);
@@
-178,7
+177,7
@@
tp_epoll_wait (gpointer p)
}
LeaveCriticalSection (&socket_io_data->io_lock);
threadpool_append_jobs (&async_io_tp, (MonoObject **) async_results, nresults);
}
LeaveCriticalSection (&socket_io_data->io_lock);
threadpool_append_jobs (&async_io_tp, (MonoObject **) async_results, nresults);
- mono_gc_bzero (async_results, sizeof (gpointer) * nresults);
+ mono_gc_bzero
_aligned
(async_results, sizeof (gpointer) * nresults);
}
}
#undef EPOLL_NEVENTS
}
}
#undef EPOLL_NEVENTS