コード例 #1
0
ファイル: pvmc.c プロジェクト: UnixJunkie/ocamlpvm
value
Pvm_bcast(value groupname, value msgtag)
{
  int err = pvm_bcast(String_val(groupname), Int_val(msgtag));
  if (err < 0) TreatError(err);
  return;
}
コード例 #2
0
ファイル: LLComms.c プロジェクト: Ericson2314/lighthouse
void
broadcastOpN(OpCode op, char *group, int n, StgPtr args)
{
  long arg;

  //traceSendOp(op, task, 0, 0);
  
  pvm_initsend(PvmDataRaw);
  arg = (long) n;
  PutArgN(0, arg);
  PutArgs(args, n);
  pvm_bcast(group, op);
}
コード例 #3
0
ファイル: skier.c プロジェクト: vincentvanbush/ski-lift
void bcast_request_msg(struct state_info info) {
	int tag = MSG_REQUEST;
	*info.local_clock += 1;
	pvm_initsend(PvmDataDefault);
	pvm_pkint(&tag, 1, 1);
	pvm_pkint(&info.mytid, 1, 1);
	pvm_pkint(info.local_clock, 1, 1);
	pvm_pkint(info.my_lift_number, 1, 1);
	pvm_bcast(GROUP, MSG_REQUEST);

	*info.my_request_timestamp = *info.local_clock;

	char diag[200];
	sprintf(diag, "bcast MSG_REQUEST [timestamp=%d, lift_number=%s]", *info.local_clock, stringify(*info.my_lift_number));
	diag_msg(info.mstrtid, info.mytid, diag);
}
コード例 #4
0
ファイル: skier.c プロジェクト: vincentvanbush/ski-lift
void bcast_release_msg(struct state_info info) {
	int tag = MSG_RELEASE;
	*info.local_clock += 1;
	pvm_initsend(PvmDataDefault);
	pvm_pkint(&tag, 1, 1);
	pvm_pkint(&info.mytid, 1, 1);
	pvm_pkint(info.local_clock, 1, 1);
	pvm_pkint(info.my_lift_number, 1, 1);
	pvm_bcast(GROUP, MSG_RELEASE);

	// Unallocate space on the lift
	int *my_weight_ptr = g_hash_table_lookup(info.skiers_weights, &info.mytid);
	int my_weight = *my_weight_ptr;
	int *lift_free = (*info.my_lift_number == LIFT_1 ? info.lift1_free : info.lift2_free);
	*lift_free += my_weight;

	char diag[200];
	sprintf(diag, "bcast MSG_RELEASE [timestamp=%d, lift_number=%s]", *info.local_clock, stringify(*info.my_lift_number));
	diag_msg(info.mstrtid, info.mytid, diag);
}