void InitProc(int product_sem_id) { char key; while(1) //loops infinitely to poll for a key { Sleep(1); //repeat to sleep for a second inside the infinite loop if(cons_kbhit()) { key = cons_getchar(); switch(key) { case 'p': StartProc(ProducerProc);//create a producer process break; case 'c': StartProc(ConsumerProc);//create a consumer process break; case 'b': breakpoint(); //breakpoint() to go into GDB break; case 'x': exit(0); //exit(0) to quit MyOS.dli break; default : // no keys were pressed break; } } } }
//-------------------------------------------------------------------------------------------------- le_result_t proc_StartInSandbox ( proc_Ref_t procRef, ///< [IN] The process to start. const char* workingDirPtr, ///< [IN] The path to the process's working directory, relative /// to the sandbox directory. uid_t uid, ///< [IN] The user ID to start the process as. gid_t gid, ///< [IN] The primary group ID for this process. const gid_t* groupsPtr, ///< [IN] List of supplementary groups for this process. size_t numGroups, ///< [IN] The number of groups in the supplementary groups list. const char* sandboxDirPtr ///< [IN] The path to the root of the sandbox this process is to /// run in. If NULL then process will be unsandboxed. ) { return StartProc(procRef, workingDirPtr, uid, gid, groupsPtr, numGroups, sandboxDirPtr); }