本文整理汇总了C++中Monitor::process_request方法的典型用法代码示例。如果您正苦于以下问题:C++ Monitor::process_request方法的具体用法?C++ Monitor::process_request怎么用?C++ Monitor::process_request使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Monitor
的用法示例。
在下文中一共展示了Monitor::process_request方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: receive_request
CFDataRef Monitor::receive_request(CFMessagePortRef local, SInt32 msgid, CFDataRef data, void *info) {
Monitor *monitor = (Monitor *)info;
CFIndex length = CFDataGetLength(data);
memcpy(monitor->_request, CFDataGetBytePtr(data), length);
CFDataRef reply = monitor->_response_buffer = CFDataCreateMutable(kCFAllocatorMallocZone, 0);
// sample the stack.
monitor->_stack_bottom = (void*) auto_get_sp();
// scan args
monitor->tokenize_args();
// prevent the collector from collecting until we've processed the request.
Zone *zone = Zone::zone();
if (zone) zone->block_collector();
// process request generating report
monitor->process_request();
// unblock the collector.
if (zone) zone->unblock_collector();
// return the response.
CFDataAppendBytes(monitor->_response_buffer, (const UInt8*)"\0", 1);
monitor->_response_buffer = NULL;
return reply;
}