yarv-diff:120
From: ko1 atdot.net
Date: 7 Oct 2005 00:36:59 -0000
Subject: [yarv-diff:120] r276 - trunk
Author: ko1
Date: 2005-10-07 09:36:58 +0900 (Fri, 07 Oct 2005)
New Revision: 276
Modified:
trunk/ChangeLog
trunk/yarvcore.h
Log:
* yarvcore.h : add member variable "interrupt_flag" to yarv_thread_t
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2005-10-05 12:25:40 UTC (rev 275)
+++ trunk/ChangeLog 2005-10-07 00:36:58 UTC (rev 276)
@@ -4,7 +4,11 @@
# from Mon, 03 May 2004 01:24:19 +0900
#
+2005-10-07(Fri) 09:36:36 +0900 Koichi Sasada <ko1 atdot.net>
+ * yarvcore.h : add member variable "interrupt_flag" to yarv_thread_t
+
+
2005-10-05(Wed) 21:20:13 +0900 Koichi Sasada <ko1 atdot.net>
* eva.c, eval_thread.c, ruby.h, eval_error.h, eval_jump.h,
@@ -18,9 +22,7 @@
* yarvcore.c : fix some mark/free routine
- * yarvcore.h :
-
2005-10-05(Wed) 09:08:11 +0900 Koichi Sasada <ko1 atdot.net>
* eval.c, eval_intern.h, vm.c, eval_jump.h, yarvcore.h :
Modified: trunk/yarvcore.h
===================================================================
--- trunk/yarvcore.h 2005-10-05 12:25:40 UTC (rev 275)
+++ trunk/yarvcore.h 2005-10-07 00:36:58 UTC (rev 276)
@@ -357,6 +357,7 @@
/* thread control */
yarv_thread_id_t thread_id;
enum yarv_thread_status status;
+ int interrupt_flag;
struct yarv_tag *tag;
VALUE value;
@@ -511,16 +512,23 @@
void yarv_thraed_schedule();
-#define YARV_CHECK_INTS() do { \
- if(GET_VM()->interrupt_flag){ \
- GET_VM()->interrupt_flag = 0; \
+
+#define YARV_CHECK_INTS_TH(th) do { \
+ if(th->vm->interrupt_flag || \
+ th->interrupt_flag){ \
+ th->interrupt_flag = 0; \
+ th->vm->interrupt_flag = 0; \
/* TODO: trap something event */ \
yarv_thraed_schedule(); \
} \
} while (0)
+#define YARV_CHECK_INTS() \
+ YARV_CHECK_INTS_TH(GET_THREAD())
+
+
#endif // _YARVCORE_H_INCLUDED_
--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml