This is an automated email from the ASF dual-hosted git repository.
amc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git
The following commit(s) were added to refs/heads/master by this push:
new e27c09b Cleanup in EThread. For #1997.
e27c09b is described below
commit e27c09b1042e04d55ca21a8841ce4efa0c7bba2c
Author: Alan M. Carroll <[email protected]>
AuthorDate: Mon Jun 5 20:51:29 2017 -0500
Cleanup in EThread.
For #1997.
---
iocore/eventsystem/I_EThread.h | 19 ++++++++-----------
iocore/eventsystem/UnixEThread.cc | 20 +++++---------------
2 files changed, 13 insertions(+), 26 deletions(-)
diff --git a/iocore/eventsystem/I_EThread.h b/iocore/eventsystem/I_EThread.h
index e93784a..6b219d4 100644
--- a/iocore/eventsystem/I_EThread.h
+++ b/iocore/eventsystem/I_EThread.h
@@ -49,7 +49,6 @@ class Continuation;
enum ThreadType {
REGULAR = 0,
- MONITOR,
DEDICATED,
};
@@ -257,12 +256,7 @@ public:
Event *schedule_local(Event *e);
- InkRand generator;
-
-private:
- // prevent unauthorized copies (Not implemented)
- EThread(const EThread &);
- EThread &operator=(const EThread &);
+ InkRand generator = static_cast<uint64_t>(Thread::get_hrtime_updated() ^
reinterpret_cast<uintptr_t>(this));
/*-------------------------------------------------------*\
| UNIX Interface |
@@ -270,6 +264,8 @@ private:
public:
EThread();
+ EThread(const EThread &) = delete;
+ EThread &operator=(const EThread &) = delete;
EThread(ThreadType att, int anid);
EThread(ThreadType att, Event *e);
virtual ~EThread();
@@ -292,20 +288,21 @@ public:
EThread **ethreads_to_be_signalled = nullptr;
int n_ethreads_to_be_signalled = 0;
- int id;
- unsigned int event_types = 0;
+ static constexpr int NO_ETHREAD_ID = -1;
+ int id = NO_ETHREAD_ID;
+ unsigned int event_types = 0;
bool is_event_type(EventType et);
void set_event_type(EventType et);
// Private Interface
- void execute();
+ void execute() override;
void process_event(Event *e, int calling_code);
void free_event(Event *e);
void (*signal_hook)(EThread *) = nullptr;
#if HAVE_EVENTFD
- int evfd = -1;
+ int evfd = ts::NO_FD;
#else
int evpipe[2];
#endif
diff --git a/iocore/eventsystem/UnixEThread.cc
b/iocore/eventsystem/UnixEThread.cc
index b1cc766..452c1de 100644
--- a/iocore/eventsystem/UnixEThread.cc
+++ b/iocore/eventsystem/UnixEThread.cc
@@ -37,20 +37,18 @@ struct AIOCallback;
#define MAX_HEARTBEATS_MISSED 10
#define NO_HEARTBEAT -1
#define THREAD_MAX_HEARTBEAT_MSECONDS 60
-#define NO_ETHREAD_ID -1
volatile bool shutdown_event_system = false;
-EThread::EThread() : generator((uint64_t)Thread::get_hrtime_updated() ^
(uint64_t)(uintptr_t)this), id(NO_ETHREAD_ID)
+EThread::EThread()
{
memset(thread_private, 0, PER_THREAD_DATA);
}
-EThread::EThread(ThreadType att, int anid)
- : generator((uint64_t)Thread::get_hrtime_updated() ^
(uint64_t)(uintptr_t)this), id(anid), tt(att)
+EThread::EThread(ThreadType att, int anid) : id(anid), tt(att)
{
ethreads_to_be_signalled = (EThread **)ats_malloc(MAX_EVENT_THREADS *
sizeof(EThread *));
- memset((char *)ethreads_to_be_signalled, 0, MAX_EVENT_THREADS *
sizeof(EThread *));
+ memset(ethreads_to_be_signalled, 0, MAX_EVENT_THREADS * sizeof(EThread *));
memset(thread_private, 0, PER_THREAD_DATA);
#if HAVE_EVENTFD
evfd = eventfd(0, EFD_NONBLOCK | EFD_CLOEXEC);
@@ -77,15 +75,7 @@ EThread::EThread(ThreadType att, int anid)
#endif
}
-EThread::EThread(ThreadType att, Event *e)
- : generator((uint32_t)((uintptr_t)time(nullptr) ^ (uintptr_t)this)),
- ethreads_to_be_signalled(nullptr),
- n_ethreads_to_be_signalled(0),
- id(NO_ETHREAD_ID),
- event_types(0),
- signal_hook(nullptr),
- tt(att),
- oneevent(e)
+EThread::EThread(ThreadType att, Event *e) : tt(att), oneevent(e)
{
ink_assert(att == DEDICATED);
memset(thread_private, 0, PER_THREAD_DATA);
@@ -112,7 +102,7 @@ EThread::is_event_type(EventType et)
void
EThread::set_event_type(EventType et)
{
- event_types |= (1 << (int)et);
+ event_types |= (1 << static_cast<int>(et));
}
void
--
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].