static void
spu_printf_handler_entry(uint64_t arg)
{
	SampleUtilSpursPrintfService *service = (SampleUtilSpursPrintfService *)(uintptr_t)arg;
	int	ret;
	for (;;) {
		sys_spu_thread_t	spu;
		sys_event_t	event;

		ret = sys_event_queue_receive(service->equeue, &event, 0);

		if (event.source == TERMINATING_PORT_NAME) {
			printf ("Finalizing the spu printf handler\n");
			sys_ppu_thread_exit(0);
		}
		spu = event.data1;
		int sret = spu_thread_printf(spu, event.data3);
		ret = sys_spu_thread_write_spu_mb(spu, sret);
		if (ret) {
			printf ("sys_spu_thread_write_spu_mb failed (%d)\n", ret);
			sys_ppu_thread_exit(-1);
		}
	}
	/* never reach here */
	sys_ppu_thread_exit(0);
}
//UPDATE: this function is not currently being used in the speex task or spurs manager
void _SpursPrintfThreadMain(uint64_t arg) 
{
	sys_event_t event;
	int iReturn;

	// E For unused parameter warnings
	(void) arg;

	while (1) {
		iReturn=sys_event_queue_receive(_g_SpuPrintfEventQueue, &event,
										SYS_NO_TIMEOUT);
	
		if (iReturn!=CELL_OK) {
			fprintf(stderr, "Event queue receive wasn't successful: %i\n",
					iReturn);
			exit(-1);
		}

		iReturn=spu_thread_printf(event.data1, event.data3);
		sys_spu_thread_write_spu_mb(event.data1, iReturn);
	}
}