Where Online Learning is simpler!
The C and C++ Include Header Files
/usr/include/nodejs/src/threadpoolwork-inl.h
$ cat -n /usr/include/nodejs/src/threadpoolwork-inl.h 1 // Copyright Joyent, Inc. and other Node contributors. 2 // 3 // Permission is hereby granted, free of charge, to any person obtaining a 4 // copy of this software and associated documentation files (the 5 // "Software"), to deal in the Software without restriction, including 6 // without limitation the rights to use, copy, modify, merge, publish, 7 // distribute, sublicense, and/or sell copies of the Software, and to permit 8 // persons to whom the Software is furnished to do so, subject to the 9 // following conditions: 10 // 11 // The above copyright notice and this permission notice shall be included 12 // in all copies or substantial portions of the Software. 13 // 14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN 17 // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 18 // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 19 // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 20 // USE OR OTHER DEALINGS IN THE SOFTWARE. 21 22 #ifndef SRC_THREADPOOLWORK_INL_H_ 23 #define SRC_THREADPOOLWORK_INL_H_ 24 25 #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS 26 27 #include "node_internals.h" 28 #include "tracing/trace_event.h" 29 #include "util-inl.h" 30 31 namespace node { 32 33 void ThreadPoolWork::ScheduleWork() { 34 env_->IncreaseWaitingRequestCounter(); 35 TRACE_EVENT_NESTABLE_ASYNC_BEGIN0( 36 TRACING_CATEGORY_NODE2(threadpoolwork, async), type_, this); 37 int status = uv_queue_work( 38 env_->event_loop(), 39 &work_req_, 40 [](uv_work_t* req) { 41 ThreadPoolWork* self = ContainerOf(&ThreadPoolWork::work_req_, req); 42 TRACE_EVENT_BEGIN0(TRACING_CATEGORY_NODE2(threadpoolwork, sync), 43 self->type_); 44 self->DoThreadPoolWork(); 45 TRACE_EVENT_END0(TRACING_CATEGORY_NODE2(threadpoolwork, sync), 46 self->type_); 47 }, 48 [](uv_work_t* req, int status) { 49 ThreadPoolWork* self = ContainerOf(&ThreadPoolWork::work_req_, req); 50 self->env_->DecreaseWaitingRequestCounter(); 51 TRACE_EVENT_NESTABLE_ASYNC_END1( 52 TRACING_CATEGORY_NODE2(threadpoolwork, async), 53 self->type_, 54 self, 55 "result", 56 status); 57 self->AfterThreadPoolWork(status); 58 }); 59 CHECK_EQ(status, 0); 60 } 61 62 int ThreadPoolWork::CancelWork() { 63 return uv_cancel(reinterpret_cast
(&work_req_)); 64 } 65 66 } // namespace node 67 68 #endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS 69 70 #endif // SRC_THREADPOOLWORK_INL_H_
Contact us
|
About us
|
Term of use
|
Copyright © 2000-2025 MyWebUniversity.com ™