MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / Dequeue

Method Dequeue

Kernel/include/ringbuffer.h:61–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59 }
60
61 int Dequeue(T* data, size_t amount){
62 acquireLock(&dequeueLock);
63 if(dequeuePointer == enqueuePointer){
64 releaseLock(&dequeueLock);
65 return 0;
66 }
67
68 size_t counter = 0;
69 while(dequeuePointer != enqueuePointer && counter < amount) {
70 memcpy(data++, dequeuePointer++, sizeof(T));
71 counter++;
72
73 if(dequeuePointer >= bufferEnd){
74 dequeuePointer = buffer;
75 }
76 }
77 releaseLock(&dequeueLock);
78
79 return counter;
80 }
81};

Callers 2

DestroyMethod · 0.45
ReadMethod · 0.45

Calls 1

memcpyFunction · 0.85

Tested by

no test coverage detected