testerror.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /* Simple test of the SDL threading code and error handling */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <signal.h>
  5. #include "SDL.h"
  6. #include "SDL_thread.h"
  7. static int alive = 0;
  8. int ThreadFunc(void *data)
  9. {
  10. /* Set the child thread error string */
  11. SDL_SetError("Thread %s (%d) had a problem: %s",
  12. (char *)data, SDL_ThreadID(), "nevermind");
  13. while ( alive ) {
  14. printf("Thread '%s' is alive!n", (char *)data);
  15. SDL_Delay(1*1000);
  16. }
  17. printf("Child thread error string: %sn", SDL_GetError());
  18. return(0);
  19. }
  20. int main(int argc, char *argv[])
  21. {
  22. SDL_Thread *thread;
  23. /* Load the SDL library */
  24. if ( SDL_Init(0) < 0 ) {
  25. fprintf(stderr, "Couldn't initialize SDL: %sn",SDL_GetError());
  26. exit(1);
  27. }
  28. atexit(SDL_Quit);
  29. /* Set the error value for the main thread */
  30. SDL_SetError("No worries");
  31. alive = 1;
  32. thread = SDL_CreateThread(ThreadFunc, "#1");
  33. if ( thread == NULL ) {
  34. fprintf(stderr, "Couldn't create thread: %sn", SDL_GetError());
  35. exit(1);
  36. }
  37. SDL_Delay(5*1000);
  38. printf("Waiting for thread #1n");
  39. alive = 0;
  40. SDL_WaitThread(thread, NULL);
  41. printf("Main thread error string: %sn", SDL_GetError());
  42. return(0);
  43. }