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

Method Slave_Read

Kernel/src/tty/pty.cpp:174–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

172}
173
174size_t PTY::Slave_Read(char* buffer, size_t count){
175 thread_t* thread = GetCPULocal()->currentThread;
176
177 while(thread->state != ThreadStateZombie && IsCanonical() && !slave.lines) Scheduler::BlockCurrentThread(slaveBlocker);
178 while(thread->state != ThreadStateZombie && !IsCanonical() && !slave.bufferPos) Scheduler::BlockCurrentThread(slaveBlocker);
179
180 if(thread->state == ThreadStateZombie){
181 slaveBlocker.Remove(thread);
182 return -1;
183 }
184
185 return slave.Read(buffer, count);
186}
187
188size_t PTY::Master_Write(char* buffer, size_t count){
189 size_t ret = slave.Write(buffer, count);

Callers 1

ReadMethod · 0.80

Calls 4

GetCPULocalFunction · 0.85
BlockCurrentThreadFunction · 0.85
RemoveMethod · 0.45
ReadMethod · 0.45

Tested by

no test coverage detected