📄 no.147.mal
字号:
# Monet Mil to Mal compiler# Copyright (c) 2001-2004, CWI. All rights reserved.#Predefined code segment#The compiler can not guarantee an accurate compilation,#because MIL unlike MAL is a dynamically typed language.#A few guidelines to maximize usefullness.#- make the type of variables explicit, in particular 'nil'#- upon advice of M2m to remap identifiers, change it in your program directly#use the "mil_schema" for additional support routines# io.print("# >Number: 147\n");# io.print("# >Category: Module_sys\n");# io.print("# >Synopsis: view_gdk_thread() crashes\n");# io.print("# >Confidential: no\n");# io.print("# >Severity: serious\n");# io.print("# >Priority: medium\n");# io.print("# >Responsible: mk (Martin Kersten)\n");# io.print("# >State: closed\n");# io.print("# >Class: sw-bug\n");# io.print("# >Submitter-Id: unknown\n");# io.print("# >Arrival-Date: Mon Mar 9 16:10:23 1998\n");# io.print("# >Originator: manegold@cwi.nl\n");# io.print("# >Organization:\n");# io.print("# >Release: 980101\n");# io.print("# >Environment:\n");# io.print("# SunOS5.6 (GNU=OFF) & SunOS5.5 (GNU=ON)\n");# io.print("# >Description:\n");# io.print("# ================\n");# io.print("# Test script:\n");# io.print("# ----------------\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #1\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #2\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #3\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #4\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #5\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# view_gdk_thread().print();\n");# io.print("# quit;\n");# io.print("# \n");# io.print("# ================\n");# io.print("# output\n");# io.print("# ----------------\n");# io.print("# [...]#You are system administrator (adm)!\n");# io.print("# threads();\n");# io.print("# #---------------------------------#\n");# io.print("# # int | thread #\n");# io.print("# #---------------------------------#\n");# io.print("# [ 1, \"Server\" ]\n");# io.print("# [ 4, \"Interpreter\" ]\n");# io.print("# [ 5, \"InternetServer\" ]\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #---------------------------------#\n");# io.print("# # int | thread #\n");# io.print("# #---------------------------------#\n");# io.print("# [ 1, \"Server\" ]\n");# io.print("# [ 4, \"Interpreter\" ]\n");# io.print("# [ 5, \"InternetServer\" ]\n");# io.print("# #1\n");# io.print("# threadcnt(1);\n");# io.print("# threads();\n");# io.print("# #---------------------------------#\n");# io.print("# # int | thread #\n");# io.print("# #---------------------------------#\n");# io.print("# [ 1, \"Server\" ]\n");# io.print("# [ 4, \"Interpreter\" ]\n");# io.print("# [ 5, \"InternetServer\" ]\n");# io.print("# view_gdk_thread().print();\n");# io.print("# #---------------------------------#\n");# io.print("# # int | thread #\n");# io.print("# #---------------------------------#\n");# io.print("# [ 1, \"Server\" ]\n");# io.print("# [ 4, \"Interpreter\" ]\n");# io.print("# [ 5, \"InternetServer\" ]\n");# io.print("# [ 7, \"Interpreter\" ]\n");# io.print("# #2\n");# io.print("# threadcnt(1);\n");# io.print("# !ERROR: thisRequest: could not find itself\n");# io.print("# Segmentation Fault (core dumped)\n");# io.print("# \n");# io.print("# ================\n");# io.print("# Discription:\n");# io.print("# ----------------\n");# io.print("# The error does not occur deterministically. Sometimes\n");# io.print("# it takes more than 2 'threadcnt(1)` calls, until the\n");# io.print("# error occurs. Sometimes the error does not occur at all.\n");# io.print("# The error may also occur after a single 'threadcnt(x)`\n");# io.print("# call with x>1.\n");# io.print("# In general, the error occurs less often on SunS5.5 (GNU=ON)\n");# io.print("# than on SunOS5.6 (GNU=OFF).\n");# io.print("# \n");# io.print("# \tstefan\n");# io.print("setoid(oid(2000000));"); aa_a := calc.oid(2000000); ba_a := setoid(aa_a);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); ca_a := printf("#~BeginVariableOutput~#\n"); da_a := threads(); ea_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); fa_a := printf("#~BeginVariableOutput~#\n"); ga_a := view_gdk_thread(); ha_a := bat.print(ga_a); ia_a := printf("#~EndVariableOutput~#\n");# io.print("#1\n"); ja_a := threadcnt(1);# io.print("sleep(1);"); ka_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); la_a := printf("#~BeginVariableOutput~#\n"); ma_a := threads(); na_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); oa_a := printf("#~BeginVariableOutput~#\n"); pa_a := view_gdk_thread(); qa_a := bat.print(pa_a); ra_a := printf("#~EndVariableOutput~#\n");# io.print("#2\n"); sa_a := threadcnt(1);# io.print("sleep(1);"); ta_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); ua_a := printf("#~BeginVariableOutput~#\n"); va_a := threads(); wa_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); xa_a := printf("#~BeginVariableOutput~#\n"); ya_a := view_gdk_thread(); ab_a := bat.print(ya_a); bb_a := printf("#~EndVariableOutput~#\n");# io.print("#3\n"); cb_a := threadcnt(1);# io.print("sleep(1);"); db_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); eb_a := printf("#~BeginVariableOutput~#\n"); fb_a := threads(); gb_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); hb_a := printf("#~BeginVariableOutput~#\n"); ib_a := view_gdk_thread(); jb_a := bat.print(ib_a); kb_a := printf("#~EndVariableOutput~#\n");# io.print("#4\n"); lb_a := threadcnt(1);# io.print("sleep(1);"); mb_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); nb_a := printf("#~BeginVariableOutput~#\n"); ob_a := threads(); pb_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); qb_a := printf("#~BeginVariableOutput~#\n"); rb_a := view_gdk_thread(); sb_a := bat.print(rb_a); tb_a := printf("#~EndVariableOutput~#\n");# io.print("#5\n"); ub_a := threadcnt(1);# io.print("sleep(1);"); vb_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); wb_a := printf("#~BeginVariableOutput~#\n"); xb_a := threads(); yb_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); ac_a := printf("#~BeginVariableOutput~#\n"); bc_a := view_gdk_thread(); cc_a := bat.print(bc_a); dc_a := printf("#~EndVariableOutput~#\n");# io.print("#6\n"); ec_a := threadcnt(1);# io.print("sleep(1);"); fc_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); gc_a := printf("#~BeginVariableOutput~#\n"); hc_a := threads(); ic_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); jc_a := printf("#~BeginVariableOutput~#\n"); kc_a := view_gdk_thread(); lc_a := bat.print(kc_a); mc_a := printf("#~EndVariableOutput~#\n");# io.print("#7\n"); nc_a := threadcnt(1);# io.print("sleep(1);"); oc_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); pc_a := printf("#~BeginVariableOutput~#\n"); qc_a := threads(); rc_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); sc_a := printf("#~BeginVariableOutput~#\n"); tc_a := view_gdk_thread(); uc_a := bat.print(tc_a); vc_a := printf("#~EndVariableOutput~#\n");# io.print("#8\n"); wc_a := threadcnt(1);# io.print("sleep(1);"); xc_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); yc_a := printf("#~BeginVariableOutput~#\n"); ad_a := threads(); bd_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); cd_a := printf("#~BeginVariableOutput~#\n"); dd_a := view_gdk_thread(); ed_a := bat.print(dd_a); fd_a := printf("#~EndVariableOutput~#\n");# io.print("#9\n"); gd_a := threadcnt(-1);# io.print("sleep(1);"); hd_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); id_a := printf("#~BeginVariableOutput~#\n"); jd_a := threads(); kd_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); ld_a := printf("#~BeginVariableOutput~#\n"); md_a := view_gdk_thread(); nd_a := bat.print(md_a); od_a := printf("#~EndVariableOutput~#\n");# io.print("#8\n"); pd_a := threadcnt(-1);# io.print("sleep(1);"); qd_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); rd_a := printf("#~BeginVariableOutput~#\n"); sd_a := threads(); td_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); ud_a := printf("#~BeginVariableOutput~#\n"); vd_a := view_gdk_thread(); wd_a := bat.print(vd_a); xd_a := printf("#~EndVariableOutput~#\n");# io.print("#7\n"); yd_a := threadcnt(-1);# io.print("sleep(1);"); ae_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); be_a := printf("#~BeginVariableOutput~#\n"); ce_a := threads(); de_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); ee_a := printf("#~BeginVariableOutput~#\n"); fe_a := view_gdk_thread(); ge_a := bat.print(fe_a); he_a := printf("#~EndVariableOutput~#\n");# io.print("#6\n"); ie_a := threadcnt(-1);# io.print("sleep(1);"); je_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); ke_a := printf("#~BeginVariableOutput~#\n"); le_a := threads(); me_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); ne_a := printf("#~BeginVariableOutput~#\n"); oe_a := view_gdk_thread(); pe_a := bat.print(oe_a); qe_a := printf("#~EndVariableOutput~#\n");# io.print("#5\n"); re_a := threadcnt(-1);# io.print("sleep(1);"); se_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); te_a := printf("#~BeginVariableOutput~#\n"); ue_a := threads(); ve_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); we_a := printf("#~BeginVariableOutput~#\n"); xe_a := view_gdk_thread(); ye_a := bat.print(xe_a); af_a := printf("#~EndVariableOutput~#\n");# io.print("#4\n"); bf_a := threadcnt(-1);# io.print("sleep(1);"); cf_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); df_a := printf("#~BeginVariableOutput~#\n"); ef_a := threads(); ff_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); gf_a := printf("#~BeginVariableOutput~#\n"); hf_a := view_gdk_thread(); if_a := bat.print(hf_a); jf_a := printf("#~EndVariableOutput~#\n");# io.print("#3\n"); kf_a := threadcnt(-1);# io.print("sleep(1);"); lf_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); mf_a := printf("#~BeginVariableOutput~#\n"); nf_a := threads(); of_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); pf_a := printf("#~BeginVariableOutput~#\n"); qf_a := view_gdk_thread(); rf_a := bat.print(qf_a); sf_a := printf("#~EndVariableOutput~#\n");# io.print("#2\n"); tf_a := threadcnt(-1);# io.print("sleep(1);"); uf_a := sleep(1);# io.print("printf(\"#~BeginVariableOutput~#\\n\");threads();printf(\"#~EndVariableOutput~#\\n\");"); vf_a := printf("#~BeginVariableOutput~#\n"); wf_a := threads(); xf_a := printf("#~EndVariableOutput~#\n");# io.print("printf(\"#~BeginVariableOutput~#\\n\");view_gdk_thread().print();printf(\"#~EndVariableOutput~#\\n\");"); yf_a := printf("#~BeginVariableOutput~#\n"); ag_a := view_gdk_thread(); bg_a := bat.print(ag_a); cg_a := printf("#~EndVariableOutput~#\n");# io.print("quit();"); dg_a := clients.quit();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -