blob: 09ea55b3a8f90dbfa49c858d088e30661410dc4c [file] [log] [blame] [edit]
#include <stdio.h>
#include <assert.h>
#include <vcore.h>
#include <parlib.h>
#include <mcs.h>
#include <uthread.h>
mcs_barrier_t b;
void do_work_son(int vcoreid)
{
int pcoreid = sys_getpcoreid();
int pid = sys_getpid();
printf("Hello! My Process ID: %d My VCoreID: %d My CPU: %d\n", pid, vcoreid,
pcoreid);
mcs_barrier_wait(&b,vcoreid);
}
void vcore_entry()
{
assert(vcore_id() > 0);
do_work_son(vcore_id());
}
int main(int argc, char** argv)
{
assert(vcore_id() == 0);
mcs_barrier_init(&b,max_vcores());
vcore_request(max_vcores()-1);
do_work_son(0);
return 0;
}