Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //producer
- queue_.push( new_data );// new_data is a 64kb memory range
- PostThreadMessage(worker_thread_id_, MyMsg, 0, 0);//notify the worker thread
- //consumer
- while(GetMessage(msg, 0, 0))
- {
- data = queue_.pop();
- WriteFile(file_handle_, data.begin(), data.size(), &io_bytes, NULL);
- }
- //producer
- //file must be associated with io completion port
- WriteFile( file_handle_
- , new_data.begin()
- , new_data.size()
- , &io_bytes
- , new my_overlaped(new_data) );
- my_completion_key* ck = 0;
- my_overlapped* op = 0;
- DWORD res = GetQueuedIOCompletionStatus(completion_port_, &io_bytes, &ck, &op);
- //process errors
- delete op->data;
Add Comment
Please, Sign In to add comment