Example #1
0
/*--------------------------------------------------------------------------
 *  sehlltest  -  use shell command to test pipe machanism
 *--------------------------------------------------------------------------
 */
void	shelltest(void)
{
	shell_pipid_test = pipcreate();
	shell_piptr_test = &piptab[shell_pipid_test];

	shellproducerid = create(shellproduce, 1024, 20, "shellproducer", 0);
	shellconsumerid = create(shellconsume, 1024, 20, "shellconsumer", 0);
	shellclockid = create(shellclock, 1024, 20, "shellclock", 0);
	pipconnect(shell_pipid_test, shellproducerid, shellconsumerid);
	resume(shellproducerid);
	resume(shellconsumerid);
	resume(shellclockid);
	pipdisconnect(shell_pipid_test);
	pipdelete(shell_pipid_test);
}
Example #2
0
File: main.c Project: fybecks/XINU
int main(int argc, char **argv)
{
  	pipid32 pip;
  	pid32	reader;
  	pid32	writer;
  
  	if(SYSERR == (pip = pipcreate())) {
    		return 0;
  	}
    
  	if(SYSERR == (reader = create(consume, 8196, 20, "read", 1, pip))) {
    		return 0;
  	}
  
  	if(SYSERR == (writer = create(produce, 8196, 20, "write", 1, pip))) {
    		return 0;
  	}

  	if((pipconnect(pip, writer, reader) == SYSERR)) {
    		return 0;
  	}
  	
  	resume(writer);
  	resume(reader);

	while(1){
		char command = getchar();
		if(command == 10){
			resume(reader);
		}
		if(command == 'q'){
			break;
		}
		
	}
  	  
  	kill(reader);
  	kill(writer);
  
  	pipdisconnect(pip);
  	pipdelete(pip);
   
  	return OK;
}