1
0
mirror of https://github.com/azure-rtos/threadx synced 2025-01-30 08:02:57 +08:00
threadx/test/smp/regression/threadx_smp_random_resume_suspend_test.c
2023-04-04 09:40:54 +00:00

2330 lines
67 KiB
C

/* Define the ThreadX SMP random resume/suspend test. */
#include <stdio.h>
#include "tx_api.h"
//#define MAX_PASSES 50000000
//#define MAX_PASSES 50000
#define MAX_PASSES 500
/* Define the ThreadX object control blocks... Must have 256 priority levels... and assumes 4 cores. */
static TX_THREAD thread_0;
static TX_THREAD thread_1;
static TX_THREAD thread_2;
static TX_THREAD thread_3;
static TX_THREAD thread_4;
static TX_THREAD thread_5;
static TX_THREAD thread_6;
static TX_THREAD thread_7;
static TX_THREAD thread_8;
static TX_THREAD thread_9;
static TX_THREAD thread_10;
static TX_THREAD thread_11;
static TX_THREAD thread_12;
static TX_THREAD thread_13;
static TX_THREAD thread_14;
static TX_THREAD thread_15;
static TX_THREAD thread_16;
static TX_THREAD thread_17;
static TX_THREAD thread_18;
static TX_THREAD thread_19;
static TX_THREAD thread_20;
static TX_THREAD thread_21;
static TX_THREAD thread_22;
static TX_THREAD thread_23;
static TX_THREAD thread_24;
static TX_THREAD thread_25;
static TX_THREAD thread_26;
static TX_THREAD thread_27;
static TX_THREAD thread_28;
static TX_THREAD thread_29;
static TX_THREAD thread_30;
static TX_THREAD thread_31;
static TX_THREAD thread_32;
static TX_THREAD thread_33;
static TX_THREAD thread_34;
static TX_THREAD thread_35;
static TX_THREAD thread_36;
static TX_THREAD thread_37;
static TX_THREAD thread_38;
static TX_THREAD thread_39;
static TX_THREAD thread_40;
static TX_THREAD thread_41;
static TX_THREAD thread_42;
static TX_THREAD thread_43;
static TX_THREAD thread_44;
static TX_THREAD thread_45;
static TX_THREAD thread_46;
static TX_THREAD thread_47;
static TX_THREAD thread_48;
static TX_THREAD thread_49;
static TX_THREAD thread_50;
static TX_THREAD thread_51;
static TX_THREAD thread_52;
static TX_THREAD thread_53;
static TX_THREAD thread_54;
static TX_THREAD thread_55;
static TX_THREAD thread_56;
static TX_THREAD thread_57;
static TX_THREAD thread_58;
static TX_THREAD thread_59;
static TX_THREAD thread_60;
static TX_THREAD thread_61;
static TX_THREAD thread_62;
static TX_THREAD thread_63;
static TX_THREAD thread_64;
static TX_THREAD thread_65;
static TX_THREAD thread_66;
static TX_THREAD thread_67;
static TX_THREAD thread_68;
static TX_THREAD thread_69;
static TX_THREAD thread_70;
static TX_THREAD thread_71;
static TX_THREAD thread_72;
static TX_THREAD thread_73;
static TX_THREAD thread_74;
static TX_THREAD thread_75;
static TX_THREAD thread_76;
static TX_THREAD thread_77;
static TX_THREAD thread_78;
static TX_THREAD thread_79;
static TX_THREAD thread_80;
static TX_THREAD thread_81;
static TX_THREAD thread_82;
static TX_THREAD thread_83;
static TX_THREAD thread_84;
static TX_THREAD thread_85;
static TX_THREAD thread_86;
static TX_THREAD thread_87;
static TX_THREAD thread_88;
static TX_THREAD thread_89;
static TX_THREAD thread_90;
static TX_THREAD thread_91;
static TX_THREAD thread_92;
static TX_THREAD thread_93;
static TX_THREAD thread_94;
static TX_THREAD thread_95;
static TX_THREAD thread_96;
static TX_THREAD thread_97;
static TX_THREAD thread_98;
static TX_THREAD thread_99;
static TX_THREAD thread_100;
static TX_THREAD thread_101;
static TX_THREAD thread_102;
static TX_THREAD thread_103;
static TX_THREAD thread_104;
static TX_THREAD thread_105;
static TX_THREAD thread_106;
static TX_THREAD thread_107;
static TX_THREAD thread_108;
static TX_THREAD thread_109;
static TX_THREAD thread_110;
static TX_THREAD thread_111;
static TX_THREAD thread_112;
static TX_THREAD thread_113;
static TX_THREAD thread_114;
static TX_THREAD thread_115;
static TX_THREAD thread_116;
static TX_THREAD thread_117;
static TX_THREAD thread_118;
static TX_THREAD thread_119;
static TX_THREAD thread_120;
static TX_THREAD thread_121;
static TX_THREAD thread_122;
static TX_THREAD thread_123;
static TX_THREAD thread_124;
static TX_THREAD thread_125;
static TX_THREAD thread_126;
static TX_THREAD thread_127;
static TX_THREAD thread_128;
static TX_THREAD thread_129;
static TX_THREAD thread_130;
static TX_THREAD thread_131;
static TX_THREAD thread_132;
static TX_THREAD thread_133;
static TX_THREAD thread_134;
static TX_THREAD thread_135;
static TX_THREAD thread_136;
static TX_THREAD thread_137;
static TX_THREAD thread_138;
static TX_THREAD thread_139;
static TX_THREAD thread_140;
static TX_THREAD thread_141;
static TX_THREAD thread_142;
static TX_THREAD thread_143;
static TX_THREAD thread_144;
static TX_THREAD thread_145;
static TX_THREAD thread_146;
static TX_THREAD thread_147;
static TX_THREAD thread_148;
static TX_THREAD thread_149;
static TX_THREAD thread_150;
static TX_THREAD thread_151;
static TX_THREAD thread_152;
static TX_THREAD thread_153;
static TX_THREAD thread_154;
static TX_THREAD thread_155;
static TX_THREAD thread_156;
static TX_THREAD thread_157;
static TX_THREAD thread_158;
static TX_THREAD thread_159;
static TX_THREAD thread_160;
static TX_THREAD thread_161;
static TX_THREAD thread_162;
static TX_THREAD thread_163;
static TX_THREAD thread_164;
static TX_THREAD thread_165;
static TX_THREAD thread_166;
static TX_THREAD thread_167;
static TX_THREAD thread_168;
static TX_THREAD thread_169;
static TX_THREAD thread_170;
static TX_THREAD thread_171;
static TX_THREAD thread_172;
static TX_THREAD thread_173;
static TX_THREAD thread_174;
static TX_THREAD thread_175;
static TX_THREAD thread_176;
static TX_THREAD thread_177;
static TX_THREAD thread_178;
static TX_THREAD thread_179;
static TX_THREAD thread_180;
static TX_THREAD thread_181;
static TX_THREAD thread_182;
static TX_THREAD thread_183;
static TX_THREAD thread_184;
static TX_THREAD thread_185;
static TX_THREAD thread_186;
static TX_THREAD thread_187;
static TX_THREAD thread_188;
static TX_THREAD thread_189;
static TX_THREAD thread_190;
static TX_THREAD thread_191;
static TX_THREAD thread_192;
static TX_THREAD thread_193;
static TX_THREAD thread_194;
static TX_THREAD thread_195;
static TX_THREAD thread_196;
static TX_THREAD thread_197;
static TX_THREAD thread_198;
static TX_THREAD thread_199;
static TX_THREAD thread_200;
static TX_THREAD thread_201;
static TX_THREAD thread_202;
static TX_THREAD thread_203;
static TX_THREAD thread_204;
static TX_THREAD thread_205;
static TX_THREAD thread_206;
static TX_THREAD thread_207;
static TX_THREAD thread_208;
static TX_THREAD thread_209;
static TX_THREAD thread_210;
static TX_THREAD thread_211;
static TX_THREAD thread_212;
static TX_THREAD thread_213;
static TX_THREAD thread_214;
static TX_THREAD thread_215;
static TX_THREAD thread_216;
static TX_THREAD thread_217;
static TX_THREAD thread_218;
static TX_THREAD thread_219;
static TX_THREAD thread_220;
static TX_THREAD thread_221;
static TX_THREAD thread_222;
static TX_THREAD thread_223;
static TX_THREAD thread_224;
static TX_THREAD thread_225;
static TX_THREAD thread_226;
static TX_THREAD thread_227;
static TX_THREAD thread_228;
static TX_THREAD thread_229;
static TX_THREAD thread_230;
static TX_THREAD thread_231;
static TX_THREAD thread_232;
static TX_THREAD thread_233;
static TX_THREAD thread_234;
static TX_THREAD thread_235;
static TX_THREAD thread_236;
static TX_THREAD thread_237;
static TX_THREAD thread_238;
static TX_THREAD thread_239;
static TX_THREAD thread_240;
static TX_THREAD thread_241;
static TX_THREAD thread_242;
static TX_THREAD thread_243;
static TX_THREAD thread_244;
static TX_THREAD thread_245;
static TX_THREAD thread_246;
static TX_THREAD thread_247;
static TX_THREAD thread_248;
static TX_THREAD thread_249;
static TX_THREAD thread_250;
static TX_THREAD thread_251;
static TX_THREAD thread_252;
static TX_THREAD thread_253;
static TX_THREAD thread_254;
static TX_THREAD thread_255;
static TX_THREAD thread_0_1;
static TX_THREAD thread_1_1;
static TX_THREAD thread_2_1;
static TX_THREAD thread_3_1;
static TX_THREAD thread_4_1;
static TX_THREAD thread_5_1;
static TX_THREAD thread_6_1;
static TX_THREAD thread_7_1;
static TX_THREAD thread_8_1;
static TX_THREAD thread_9_1;
static TX_THREAD thread_10_1;
static TX_THREAD thread_11_1;
static TX_THREAD thread_12_1;
static TX_THREAD thread_13_1;
static TX_THREAD thread_14_1;
static TX_THREAD thread_15_1;
static TX_THREAD thread_16_1;
static TX_THREAD thread_17_1;
static TX_THREAD thread_18_1;
static TX_THREAD thread_19_1;
static TX_THREAD thread_20_1;
static TX_THREAD thread_21_1;
static TX_THREAD thread_22_1;
static TX_THREAD thread_23_1;
static TX_THREAD thread_24_1;
static TX_THREAD thread_25_1;
static TX_THREAD thread_26_1;
static TX_THREAD thread_27_1;
static TX_THREAD thread_28_1;
static TX_THREAD thread_29_1;
static TX_THREAD thread_30_1;
static TX_THREAD thread_31_1;
static TX_THREAD thread_32_1;
static TX_THREAD thread_33_1;
static TX_THREAD thread_34_1;
static TX_THREAD thread_35_1;
static TX_THREAD thread_36_1;
static TX_THREAD thread_37_1;
static TX_THREAD thread_38_1;
static TX_THREAD thread_39_1;
static TX_THREAD thread_40_1;
static TX_THREAD thread_41_1;
static TX_THREAD thread_42_1;
static TX_THREAD thread_43_1;
static TX_THREAD thread_44_1;
static TX_THREAD thread_45_1;
static TX_THREAD thread_46_1;
static TX_THREAD thread_47_1;
static TX_THREAD thread_48_1;
static TX_THREAD thread_49_1;
static TX_THREAD thread_50_1;
static TX_THREAD thread_51_1;
static TX_THREAD thread_52_1;
static TX_THREAD thread_53_1;
static TX_THREAD thread_54_1;
static TX_THREAD thread_55_1;
static TX_THREAD thread_56_1;
static TX_THREAD thread_57_1;
static TX_THREAD thread_58_1;
static TX_THREAD thread_59_1;
static TX_THREAD thread_60_1;
static TX_THREAD thread_61_1;
static TX_THREAD thread_62_1;
static TX_THREAD thread_63_1;
static TX_THREAD thread_64_1;
static TX_THREAD thread_65_1;
static TX_THREAD thread_66_1;
static TX_THREAD thread_67_1;
static TX_THREAD thread_68_1;
static TX_THREAD thread_69_1;
static TX_THREAD thread_70_1;
static TX_THREAD thread_71_1;
static TX_THREAD thread_72_1;
static TX_THREAD thread_73_1;
static TX_THREAD thread_74_1;
static TX_THREAD thread_75_1;
static TX_THREAD thread_76_1;
static TX_THREAD thread_77_1;
static TX_THREAD thread_78_1;
static TX_THREAD thread_79_1;
static TX_THREAD thread_80_1;
static TX_THREAD thread_81_1;
static TX_THREAD thread_82_1;
static TX_THREAD thread_83_1;
static TX_THREAD thread_84_1;
static TX_THREAD thread_85_1;
static TX_THREAD thread_86_1;
static TX_THREAD thread_87_1;
static TX_THREAD thread_88_1;
static TX_THREAD thread_89_1;
static TX_THREAD thread_90_1;
static TX_THREAD thread_91_1;
static TX_THREAD thread_92_1;
static TX_THREAD thread_93_1;
static TX_THREAD thread_94_1;
static TX_THREAD thread_95_1;
static TX_THREAD thread_96_1;
static TX_THREAD thread_97_1;
static TX_THREAD thread_98_1;
static TX_THREAD thread_99_1;
static TX_THREAD thread_100_1;
static TX_THREAD thread_101_1;
static TX_THREAD thread_102_1;
static TX_THREAD thread_103_1;
static TX_THREAD thread_104_1;
static TX_THREAD thread_105_1;
static TX_THREAD thread_106_1;
static TX_THREAD thread_107_1;
static TX_THREAD thread_108_1;
static TX_THREAD thread_109_1;
static TX_THREAD thread_110_1;
static TX_THREAD thread_111_1;
static TX_THREAD thread_112_1;
static TX_THREAD thread_113_1;
static TX_THREAD thread_114_1;
static TX_THREAD thread_115_1;
static TX_THREAD thread_116_1;
static TX_THREAD thread_117_1;
static TX_THREAD thread_118_1;
static TX_THREAD thread_119_1;
static TX_THREAD thread_120_1;
static TX_THREAD thread_121_1;
static TX_THREAD thread_122_1;
static TX_THREAD thread_123_1;
static TX_THREAD thread_124_1;
static TX_THREAD thread_125_1;
static TX_THREAD thread_126_1;
static TX_THREAD thread_127_1;
static TX_THREAD thread_128_1;
static TX_THREAD thread_129_1;
static TX_THREAD thread_130_1;
static TX_THREAD thread_131_1;
static TX_THREAD thread_132_1;
static TX_THREAD thread_133_1;
static TX_THREAD thread_134_1;
static TX_THREAD thread_135_1;
static TX_THREAD thread_136_1;
static TX_THREAD thread_137_1;
static TX_THREAD thread_138_1;
static TX_THREAD thread_139_1;
static TX_THREAD thread_140_1;
static TX_THREAD thread_141_1;
static TX_THREAD thread_142_1;
static TX_THREAD thread_143_1;
static TX_THREAD thread_144_1;
static TX_THREAD thread_145_1;
static TX_THREAD thread_146_1;
static TX_THREAD thread_147_1;
static TX_THREAD thread_148_1;
static TX_THREAD thread_149_1;
static TX_THREAD thread_150_1;
static TX_THREAD thread_151_1;
static TX_THREAD thread_152_1;
static TX_THREAD thread_153_1;
static TX_THREAD thread_154_1;
static TX_THREAD thread_155_1;
static TX_THREAD thread_156_1;
static TX_THREAD thread_157_1;
static TX_THREAD thread_158_1;
static TX_THREAD thread_159_1;
static TX_THREAD thread_160_1;
static TX_THREAD thread_161_1;
static TX_THREAD thread_162_1;
static TX_THREAD thread_163_1;
static TX_THREAD thread_164_1;
static TX_THREAD thread_165_1;
static TX_THREAD thread_166_1;
static TX_THREAD thread_167_1;
static TX_THREAD thread_168_1;
static TX_THREAD thread_169_1;
static TX_THREAD thread_170_1;
static TX_THREAD thread_171_1;
static TX_THREAD thread_172_1;
static TX_THREAD thread_173_1;
static TX_THREAD thread_174_1;
static TX_THREAD thread_175_1;
static TX_THREAD thread_176_1;
static TX_THREAD thread_177_1;
static TX_THREAD thread_178_1;
static TX_THREAD thread_179_1;
static TX_THREAD thread_180_1;
static TX_THREAD thread_181_1;
static TX_THREAD thread_182_1;
static TX_THREAD thread_183_1;
static TX_THREAD thread_184_1;
static TX_THREAD thread_185_1;
static TX_THREAD thread_186_1;
static TX_THREAD thread_187_1;
static TX_THREAD thread_188_1;
static TX_THREAD thread_189_1;
static TX_THREAD thread_190_1;
static TX_THREAD thread_191_1;
static TX_THREAD thread_192_1;
static TX_THREAD thread_193_1;
static TX_THREAD thread_194_1;
static TX_THREAD thread_195_1;
static TX_THREAD thread_196_1;
static TX_THREAD thread_197_1;
static TX_THREAD thread_198_1;
static TX_THREAD thread_199_1;
static TX_THREAD thread_200_1;
static TX_THREAD thread_201_1;
static TX_THREAD thread_202_1;
static TX_THREAD thread_203_1;
static TX_THREAD thread_204_1;
static TX_THREAD thread_205_1;
static TX_THREAD thread_206_1;
static TX_THREAD thread_207_1;
static TX_THREAD thread_208_1;
static TX_THREAD thread_209_1;
static TX_THREAD thread_210_1;
static TX_THREAD thread_211_1;
static TX_THREAD thread_212_1;
static TX_THREAD thread_213_1;
static TX_THREAD thread_214_1;
static TX_THREAD thread_215_1;
static TX_THREAD thread_216_1;
static TX_THREAD thread_217_1;
static TX_THREAD thread_218_1;
static TX_THREAD thread_219_1;
static TX_THREAD thread_220_1;
static TX_THREAD thread_221_1;
static TX_THREAD thread_222_1;
static TX_THREAD thread_223_1;
static TX_THREAD thread_224_1;
static TX_THREAD thread_225_1;
static TX_THREAD thread_226_1;
static TX_THREAD thread_227_1;
static TX_THREAD thread_228_1;
static TX_THREAD thread_229_1;
static TX_THREAD thread_230_1;
static TX_THREAD thread_231_1;
static TX_THREAD thread_232_1;
static TX_THREAD thread_233_1;
static TX_THREAD thread_234_1;
static TX_THREAD thread_235_1;
static TX_THREAD thread_236_1;
static TX_THREAD thread_237_1;
static TX_THREAD thread_238_1;
static TX_THREAD thread_239_1;
static TX_THREAD thread_240_1;
static TX_THREAD thread_241_1;
static TX_THREAD thread_242_1;
static TX_THREAD thread_243_1;
static TX_THREAD thread_244_1;
static TX_THREAD thread_245_1;
static TX_THREAD thread_246_1;
static TX_THREAD thread_247_1;
static TX_THREAD thread_248_1;
static TX_THREAD thread_249_1;
static TX_THREAD thread_250_1;
static TX_THREAD thread_251_1;
static TX_THREAD thread_252_1;
static TX_THREAD thread_253_1;
static TX_THREAD thread_254_1;
static TX_THREAD thread_255_1;
static TX_THREAD thread_0_2;
static TX_THREAD thread_1_2;
static TX_THREAD thread_2_2;
static TX_THREAD thread_3_2;
static TX_THREAD thread_4_2;
static TX_THREAD thread_5_2;
static TX_THREAD thread_6_2;
static TX_THREAD thread_7_2;
static TX_THREAD thread_8_2;
static TX_THREAD thread_9_2;
static TX_THREAD thread_10_2;
static TX_THREAD thread_11_2;
static TX_THREAD thread_12_2;
static TX_THREAD thread_13_2;
static TX_THREAD thread_14_2;
static TX_THREAD thread_15_2;
static TX_THREAD thread_16_2;
static TX_THREAD thread_17_2;
static TX_THREAD thread_18_2;
static TX_THREAD thread_19_2;
static TX_THREAD thread_20_2;
static TX_THREAD thread_21_2;
static TX_THREAD thread_22_2;
static TX_THREAD thread_23_2;
static TX_THREAD thread_24_2;
static TX_THREAD thread_25_2;
static TX_THREAD thread_26_2;
static TX_THREAD thread_27_2;
static TX_THREAD thread_28_2;
static TX_THREAD thread_29_2;
static TX_THREAD thread_30_2;
static TX_THREAD thread_31_2;
static TX_THREAD thread_32_2;
static TX_THREAD thread_33_2;
static TX_THREAD thread_34_2;
static TX_THREAD thread_35_2;
static TX_THREAD thread_36_2;
static TX_THREAD thread_37_2;
static TX_THREAD thread_38_2;
static TX_THREAD thread_39_2;
static TX_THREAD thread_40_2;
static TX_THREAD thread_41_2;
static TX_THREAD thread_42_2;
static TX_THREAD thread_43_2;
static TX_THREAD thread_44_2;
static TX_THREAD thread_45_2;
static TX_THREAD thread_46_2;
static TX_THREAD thread_47_2;
static TX_THREAD thread_48_2;
static TX_THREAD thread_49_2;
static TX_THREAD thread_50_2;
static TX_THREAD thread_51_2;
static TX_THREAD thread_52_2;
static TX_THREAD thread_53_2;
static TX_THREAD thread_54_2;
static TX_THREAD thread_55_2;
static TX_THREAD thread_56_2;
static TX_THREAD thread_57_2;
static TX_THREAD thread_58_2;
static TX_THREAD thread_59_2;
static TX_THREAD thread_60_2;
static TX_THREAD thread_61_2;
static TX_THREAD thread_62_2;
static TX_THREAD thread_63_2;
static TX_THREAD thread_64_2;
static TX_THREAD thread_65_2;
static TX_THREAD thread_66_2;
static TX_THREAD thread_67_2;
static TX_THREAD thread_68_2;
static TX_THREAD thread_69_2;
static TX_THREAD thread_70_2;
static TX_THREAD thread_71_2;
static TX_THREAD thread_72_2;
static TX_THREAD thread_73_2;
static TX_THREAD thread_74_2;
static TX_THREAD thread_75_2;
static TX_THREAD thread_76_2;
static TX_THREAD thread_77_2;
static TX_THREAD thread_78_2;
static TX_THREAD thread_79_2;
static TX_THREAD thread_80_2;
static TX_THREAD thread_81_2;
static TX_THREAD thread_82_2;
static TX_THREAD thread_83_2;
static TX_THREAD thread_84_2;
static TX_THREAD thread_85_2;
static TX_THREAD thread_86_2;
static TX_THREAD thread_87_2;
static TX_THREAD thread_88_2;
static TX_THREAD thread_89_2;
static TX_THREAD thread_90_2;
static TX_THREAD thread_91_2;
static TX_THREAD thread_92_2;
static TX_THREAD thread_93_2;
static TX_THREAD thread_94_2;
static TX_THREAD thread_95_2;
static TX_THREAD thread_96_2;
static TX_THREAD thread_97_2;
static TX_THREAD thread_98_2;
static TX_THREAD thread_99_2;
static TX_THREAD thread_100_2;
static TX_THREAD thread_101_2;
static TX_THREAD thread_102_2;
static TX_THREAD thread_103_2;
static TX_THREAD thread_104_2;
static TX_THREAD thread_105_2;
static TX_THREAD thread_106_2;
static TX_THREAD thread_107_2;
static TX_THREAD thread_108_2;
static TX_THREAD thread_109_2;
static TX_THREAD thread_110_2;
static TX_THREAD thread_111_2;
static TX_THREAD thread_112_2;
static TX_THREAD thread_113_2;
static TX_THREAD thread_114_2;
static TX_THREAD thread_115_2;
static TX_THREAD thread_116_2;
static TX_THREAD thread_117_2;
static TX_THREAD thread_118_2;
static TX_THREAD thread_119_2;
static TX_THREAD thread_120_2;
static TX_THREAD thread_121_2;
static TX_THREAD thread_122_2;
static TX_THREAD thread_123_2;
static TX_THREAD thread_124_2;
static TX_THREAD thread_125_2;
static TX_THREAD thread_126_2;
static TX_THREAD thread_127_2;
static TX_THREAD thread_128_2;
static TX_THREAD thread_129_2;
static TX_THREAD thread_130_2;
static TX_THREAD thread_131_2;
static TX_THREAD thread_132_2;
static TX_THREAD thread_133_2;
static TX_THREAD thread_134_2;
static TX_THREAD thread_135_2;
static TX_THREAD thread_136_2;
static TX_THREAD thread_137_2;
static TX_THREAD thread_138_2;
static TX_THREAD thread_139_2;
static TX_THREAD thread_140_2;
static TX_THREAD thread_141_2;
static TX_THREAD thread_142_2;
static TX_THREAD thread_143_2;
static TX_THREAD thread_144_2;
static TX_THREAD thread_145_2;
static TX_THREAD thread_146_2;
static TX_THREAD thread_147_2;
static TX_THREAD thread_148_2;
static TX_THREAD thread_149_2;
static TX_THREAD thread_150_2;
static TX_THREAD thread_151_2;
static TX_THREAD thread_152_2;
static TX_THREAD thread_153_2;
static TX_THREAD thread_154_2;
static TX_THREAD thread_155_2;
static TX_THREAD thread_156_2;
static TX_THREAD thread_157_2;
static TX_THREAD thread_158_2;
static TX_THREAD thread_159_2;
static TX_THREAD thread_160_2;
static TX_THREAD thread_161_2;
static TX_THREAD thread_162_2;
static TX_THREAD thread_163_2;
static TX_THREAD thread_164_2;
static TX_THREAD thread_165_2;
static TX_THREAD thread_166_2;
static TX_THREAD thread_167_2;
static TX_THREAD thread_168_2;
static TX_THREAD thread_169_2;
static TX_THREAD thread_170_2;
static TX_THREAD thread_171_2;
static TX_THREAD thread_172_2;
static TX_THREAD thread_173_2;
static TX_THREAD thread_174_2;
static TX_THREAD thread_175_2;
static TX_THREAD thread_176_2;
static TX_THREAD thread_177_2;
static TX_THREAD thread_178_2;
static TX_THREAD thread_179_2;
static TX_THREAD thread_180_2;
static TX_THREAD thread_181_2;
static TX_THREAD thread_182_2;
static TX_THREAD thread_183_2;
static TX_THREAD thread_184_2;
static TX_THREAD thread_185_2;
static TX_THREAD thread_186_2;
static TX_THREAD thread_187_2;
static TX_THREAD thread_188_2;
static TX_THREAD thread_189_2;
static TX_THREAD thread_190_2;
static TX_THREAD thread_191_2;
static TX_THREAD thread_192_2;
static TX_THREAD thread_193_2;
static TX_THREAD thread_194_2;
static TX_THREAD thread_195_2;
static TX_THREAD thread_196_2;
static TX_THREAD thread_197_2;
static TX_THREAD thread_198_2;
static TX_THREAD thread_199_2;
static TX_THREAD thread_200_2;
static TX_THREAD thread_201_2;
static TX_THREAD thread_202_2;
static TX_THREAD thread_203_2;
static TX_THREAD thread_204_2;
static TX_THREAD thread_205_2;
static TX_THREAD thread_206_2;
static TX_THREAD thread_207_2;
static TX_THREAD thread_208_2;
static TX_THREAD thread_209_2;
static TX_THREAD thread_210_2;
static TX_THREAD thread_211_2;
static TX_THREAD thread_212_2;
static TX_THREAD thread_213_2;
static TX_THREAD thread_214_2;
static TX_THREAD thread_215_2;
static TX_THREAD thread_216_2;
static TX_THREAD thread_217_2;
static TX_THREAD thread_218_2;
static TX_THREAD thread_219_2;
static TX_THREAD thread_220_2;
static TX_THREAD thread_221_2;
static TX_THREAD thread_222_2;
static TX_THREAD thread_223_2;
static TX_THREAD thread_224_2;
static TX_THREAD thread_225_2;
static TX_THREAD thread_226_2;
static TX_THREAD thread_227_2;
static TX_THREAD thread_228_2;
static TX_THREAD thread_229_2;
static TX_THREAD thread_230_2;
static TX_THREAD thread_231_2;
static TX_THREAD thread_232_2;
static TX_THREAD thread_233_2;
static TX_THREAD thread_234_2;
static TX_THREAD thread_235_2;
static TX_THREAD thread_236_2;
static TX_THREAD thread_237_2;
static TX_THREAD thread_238_2;
static TX_THREAD thread_239_2;
static TX_THREAD thread_240_2;
static TX_THREAD thread_241_2;
static TX_THREAD thread_242_2;
static TX_THREAD thread_243_2;
static TX_THREAD thread_244_2;
static TX_THREAD thread_245_2;
static TX_THREAD thread_246_2;
static TX_THREAD thread_247_2;
static TX_THREAD thread_248_2;
static TX_THREAD thread_249_2;
static TX_THREAD thread_250_2;
static TX_THREAD thread_251_2;
static TX_THREAD thread_252_2;
static TX_THREAD thread_253_2;
static TX_THREAD thread_254_2;
static TX_THREAD thread_255_2;
static TX_THREAD thread_0_3;
static TX_THREAD thread_1_3;
static TX_THREAD thread_2_3;
static TX_THREAD thread_3_3;
static TX_THREAD thread_4_3;
static TX_THREAD thread_5_3;
static TX_THREAD thread_6_3;
static TX_THREAD thread_7_3;
static TX_THREAD thread_8_3;
static TX_THREAD thread_9_3;
static TX_THREAD thread_10_3;
static TX_THREAD thread_11_3;
static TX_THREAD thread_12_3;
static TX_THREAD thread_13_3;
static TX_THREAD thread_14_3;
static TX_THREAD thread_15_3;
static TX_THREAD thread_16_3;
static TX_THREAD thread_17_3;
static TX_THREAD thread_18_3;
static TX_THREAD thread_19_3;
static TX_THREAD thread_20_3;
static TX_THREAD thread_21_3;
static TX_THREAD thread_22_3;
static TX_THREAD thread_23_3;
static TX_THREAD thread_24_3;
static TX_THREAD thread_25_3;
static TX_THREAD thread_26_3;
static TX_THREAD thread_27_3;
static TX_THREAD thread_28_3;
static TX_THREAD thread_29_3;
static TX_THREAD thread_30_3;
static TX_THREAD thread_31_3;
static TX_THREAD thread_32_3;
static TX_THREAD thread_33_3;
static TX_THREAD thread_34_3;
static TX_THREAD thread_35_3;
static TX_THREAD thread_36_3;
static TX_THREAD thread_37_3;
static TX_THREAD thread_38_3;
static TX_THREAD thread_39_3;
static TX_THREAD thread_40_3;
static TX_THREAD thread_41_3;
static TX_THREAD thread_42_3;
static TX_THREAD thread_43_3;
static TX_THREAD thread_44_3;
static TX_THREAD thread_45_3;
static TX_THREAD thread_46_3;
static TX_THREAD thread_47_3;
static TX_THREAD thread_48_3;
static TX_THREAD thread_49_3;
static TX_THREAD thread_50_3;
static TX_THREAD thread_51_3;
static TX_THREAD thread_52_3;
static TX_THREAD thread_53_3;
static TX_THREAD thread_54_3;
static TX_THREAD thread_55_3;
static TX_THREAD thread_56_3;
static TX_THREAD thread_57_3;
static TX_THREAD thread_58_3;
static TX_THREAD thread_59_3;
static TX_THREAD thread_60_3;
static TX_THREAD thread_61_3;
static TX_THREAD thread_62_3;
static TX_THREAD thread_63_3;
static TX_THREAD thread_64_3;
static TX_THREAD thread_65_3;
static TX_THREAD thread_66_3;
static TX_THREAD thread_67_3;
static TX_THREAD thread_68_3;
static TX_THREAD thread_69_3;
static TX_THREAD thread_70_3;
static TX_THREAD thread_71_3;
static TX_THREAD thread_72_3;
static TX_THREAD thread_73_3;
static TX_THREAD thread_74_3;
static TX_THREAD thread_75_3;
static TX_THREAD thread_76_3;
static TX_THREAD thread_77_3;
static TX_THREAD thread_78_3;
static TX_THREAD thread_79_3;
static TX_THREAD thread_80_3;
static TX_THREAD thread_81_3;
static TX_THREAD thread_82_3;
static TX_THREAD thread_83_3;
static TX_THREAD thread_84_3;
static TX_THREAD thread_85_3;
static TX_THREAD thread_86_3;
static TX_THREAD thread_87_3;
static TX_THREAD thread_88_3;
static TX_THREAD thread_89_3;
static TX_THREAD thread_90_3;
static TX_THREAD thread_91_3;
static TX_THREAD thread_92_3;
static TX_THREAD thread_93_3;
static TX_THREAD thread_94_3;
static TX_THREAD thread_95_3;
static TX_THREAD thread_96_3;
static TX_THREAD thread_97_3;
static TX_THREAD thread_98_3;
static TX_THREAD thread_99_3;
static TX_THREAD thread_100_3;
static TX_THREAD thread_101_3;
static TX_THREAD thread_102_3;
static TX_THREAD thread_103_3;
static TX_THREAD thread_104_3;
static TX_THREAD thread_105_3;
static TX_THREAD thread_106_3;
static TX_THREAD thread_107_3;
static TX_THREAD thread_108_3;
static TX_THREAD thread_109_3;
static TX_THREAD thread_110_3;
static TX_THREAD thread_111_3;
static TX_THREAD thread_112_3;
static TX_THREAD thread_113_3;
static TX_THREAD thread_114_3;
static TX_THREAD thread_115_3;
static TX_THREAD thread_116_3;
static TX_THREAD thread_117_3;
static TX_THREAD thread_118_3;
static TX_THREAD thread_119_3;
static TX_THREAD thread_120_3;
static TX_THREAD thread_121_3;
static TX_THREAD thread_122_3;
static TX_THREAD thread_123_3;
static TX_THREAD thread_124_3;
static TX_THREAD thread_125_3;
static TX_THREAD thread_126_3;
static TX_THREAD thread_127_3;
static TX_THREAD thread_128_3;
static TX_THREAD thread_129_3;
static TX_THREAD thread_130_3;
static TX_THREAD thread_131_3;
static TX_THREAD thread_132_3;
static TX_THREAD thread_133_3;
static TX_THREAD thread_134_3;
static TX_THREAD thread_135_3;
static TX_THREAD thread_136_3;
static TX_THREAD thread_137_3;
static TX_THREAD thread_138_3;
static TX_THREAD thread_139_3;
static TX_THREAD thread_140_3;
static TX_THREAD thread_141_3;
static TX_THREAD thread_142_3;
static TX_THREAD thread_143_3;
static TX_THREAD thread_144_3;
static TX_THREAD thread_145_3;
static TX_THREAD thread_146_3;
static TX_THREAD thread_147_3;
static TX_THREAD thread_148_3;
static TX_THREAD thread_149_3;
static TX_THREAD thread_150_3;
static TX_THREAD thread_151_3;
static TX_THREAD thread_152_3;
static TX_THREAD thread_153_3;
static TX_THREAD thread_154_3;
static TX_THREAD thread_155_3;
static TX_THREAD thread_156_3;
static TX_THREAD thread_157_3;
static TX_THREAD thread_158_3;
static TX_THREAD thread_159_3;
static TX_THREAD thread_160_3;
static TX_THREAD thread_161_3;
static TX_THREAD thread_162_3;
static TX_THREAD thread_163_3;
static TX_THREAD thread_164_3;
static TX_THREAD thread_165_3;
static TX_THREAD thread_166_3;
static TX_THREAD thread_167_3;
static TX_THREAD thread_168_3;
static TX_THREAD thread_169_3;
static TX_THREAD thread_170_3;
static TX_THREAD thread_171_3;
static TX_THREAD thread_172_3;
static TX_THREAD thread_173_3;
static TX_THREAD thread_174_3;
static TX_THREAD thread_175_3;
static TX_THREAD thread_176_3;
static TX_THREAD thread_177_3;
static TX_THREAD thread_178_3;
static TX_THREAD thread_179_3;
static TX_THREAD thread_180_3;
static TX_THREAD thread_181_3;
static TX_THREAD thread_182_3;
static TX_THREAD thread_183_3;
static TX_THREAD thread_184_3;
static TX_THREAD thread_185_3;
static TX_THREAD thread_186_3;
static TX_THREAD thread_187_3;
static TX_THREAD thread_188_3;
static TX_THREAD thread_189_3;
static TX_THREAD thread_190_3;
static TX_THREAD thread_191_3;
static TX_THREAD thread_192_3;
static TX_THREAD thread_193_3;
static TX_THREAD thread_194_3;
static TX_THREAD thread_195_3;
static TX_THREAD thread_196_3;
static TX_THREAD thread_197_3;
static TX_THREAD thread_198_3;
static TX_THREAD thread_199_3;
static TX_THREAD thread_200_3;
static TX_THREAD thread_201_3;
static TX_THREAD thread_202_3;
static TX_THREAD thread_203_3;
static TX_THREAD thread_204_3;
static TX_THREAD thread_205_3;
static TX_THREAD thread_206_3;
static TX_THREAD thread_207_3;
static TX_THREAD thread_208_3;
static TX_THREAD thread_209_3;
static TX_THREAD thread_210_3;
static TX_THREAD thread_211_3;
static TX_THREAD thread_212_3;
static TX_THREAD thread_213_3;
static TX_THREAD thread_214_3;
static TX_THREAD thread_215_3;
static TX_THREAD thread_216_3;
static TX_THREAD thread_217_3;
static TX_THREAD thread_218_3;
static TX_THREAD thread_219_3;
static TX_THREAD thread_220_3;
static TX_THREAD thread_221_3;
static TX_THREAD thread_222_3;
static TX_THREAD thread_223_3;
static TX_THREAD thread_224_3;
static TX_THREAD thread_225_3;
static TX_THREAD thread_226_3;
static TX_THREAD thread_227_3;
static TX_THREAD thread_228_3;
static TX_THREAD thread_229_3;
static TX_THREAD thread_230_3;
static TX_THREAD thread_231_3;
static TX_THREAD thread_232_3;
static TX_THREAD thread_233_3;
static TX_THREAD thread_234_3;
static TX_THREAD thread_235_3;
static TX_THREAD thread_236_3;
static TX_THREAD thread_237_3;
static TX_THREAD thread_238_3;
static TX_THREAD thread_239_3;
static TX_THREAD thread_240_3;
static TX_THREAD thread_241_3;
static TX_THREAD thread_242_3;
static TX_THREAD thread_243_3;
static TX_THREAD thread_244_3;
static TX_THREAD thread_245_3;
static TX_THREAD thread_246_3;
static TX_THREAD thread_247_3;
static TX_THREAD thread_248_3;
static TX_THREAD thread_249_3;
static TX_THREAD thread_250_3;
static TX_THREAD thread_251_3;
static TX_THREAD thread_252_3;
static TX_THREAD thread_253_3;
static TX_THREAD thread_254_3;
static TX_THREAD thread_255_3;
/* Define test array. */
static TX_THREAD *_smp_randomized_source_array[] = {
{&thread_0},
{&thread_1},
{&thread_2},
{&thread_3},
{&thread_4},
{&thread_5},
{&thread_6},
{&thread_7},
{&thread_8},
{&thread_9},
{&thread_10},
{&thread_11},
{&thread_12},
{&thread_13},
{&thread_14},
{&thread_15},
{&thread_16},
{&thread_17},
{&thread_18},
{&thread_19},
{&thread_20},
{&thread_21},
{&thread_22},
{&thread_23},
{&thread_24},
{&thread_25},
{&thread_26},
{&thread_27},
{&thread_28},
{&thread_29},
{&thread_30},
{&thread_31},
{&thread_32},
{&thread_33},
{&thread_34},
{&thread_35},
{&thread_36},
{&thread_37},
{&thread_38},
{&thread_39},
{&thread_40},
{&thread_41},
{&thread_42},
{&thread_43},
{&thread_44},
{&thread_45},
{&thread_46},
{&thread_47},
{&thread_48},
{&thread_49},
{&thread_50},
{&thread_51},
{&thread_52},
{&thread_53},
{&thread_54},
{&thread_55},
{&thread_56},
{&thread_57},
{&thread_58},
{&thread_59},
{&thread_60},
{&thread_61},
{&thread_62},
{&thread_63},
{&thread_64},
{&thread_65},
{&thread_66},
{&thread_67},
{&thread_68},
{&thread_69},
{&thread_70},
{&thread_71},
{&thread_72},
{&thread_73},
{&thread_74},
{&thread_75},
{&thread_76},
{&thread_77},
{&thread_78},
{&thread_79},
{&thread_80},
{&thread_81},
{&thread_82},
{&thread_83},
{&thread_84},
{&thread_85},
{&thread_86},
{&thread_87},
{&thread_88},
{&thread_89},
{&thread_90},
{&thread_91},
{&thread_92},
{&thread_93},
{&thread_94},
{&thread_95},
{&thread_96},
{&thread_97},
{&thread_98},
{&thread_99},
{&thread_100},
{&thread_101},
{&thread_102},
{&thread_103},
{&thread_104},
{&thread_105},
{&thread_106},
{&thread_107},
{&thread_108},
{&thread_109},
{&thread_110},
{&thread_111},
{&thread_112},
{&thread_113},
{&thread_114},
{&thread_115},
{&thread_116},
{&thread_117},
{&thread_118},
{&thread_119},
{&thread_120},
{&thread_121},
{&thread_122},
{&thread_123},
{&thread_124},
{&thread_125},
{&thread_126},
{&thread_127},
{&thread_128},
{&thread_129},
{&thread_130},
{&thread_131},
{&thread_132},
{&thread_133},
{&thread_134},
{&thread_135},
{&thread_136},
{&thread_137},
{&thread_138},
{&thread_139},
{&thread_140},
{&thread_141},
{&thread_142},
{&thread_143},
{&thread_144},
{&thread_145},
{&thread_146},
{&thread_147},
{&thread_148},
{&thread_149},
{&thread_150},
{&thread_151},
{&thread_152},
{&thread_153},
{&thread_154},
{&thread_155},
{&thread_156},
{&thread_157},
{&thread_158},
{&thread_159},
{&thread_160},
{&thread_161},
{&thread_162},
{&thread_163},
{&thread_164},
{&thread_165},
{&thread_166},
{&thread_167},
{&thread_168},
{&thread_169},
{&thread_170},
{&thread_171},
{&thread_172},
{&thread_173},
{&thread_174},
{&thread_175},
{&thread_176},
{&thread_177},
{&thread_178},
{&thread_179},
{&thread_180},
{&thread_181},
{&thread_182},
{&thread_183},
{&thread_184},
{&thread_185},
{&thread_186},
{&thread_187},
{&thread_188},
{&thread_189},
{&thread_190},
{&thread_191},
{&thread_192},
{&thread_193},
{&thread_194},
{&thread_195},
{&thread_196},
{&thread_197},
{&thread_198},
{&thread_199},
{&thread_200},
{&thread_201},
{&thread_202},
{&thread_203},
{&thread_204},
{&thread_205},
{&thread_206},
{&thread_207},
{&thread_208},
{&thread_209},
{&thread_210},
{&thread_211},
{&thread_212},
{&thread_213},
{&thread_214},
{&thread_215},
{&thread_216},
{&thread_217},
{&thread_218},
{&thread_219},
{&thread_220},
{&thread_221},
{&thread_222},
{&thread_223},
{&thread_224},
{&thread_225},
{&thread_226},
{&thread_227},
{&thread_228},
{&thread_229},
{&thread_230},
{&thread_231},
{&thread_232},
{&thread_233},
{&thread_234},
{&thread_235},
{&thread_236},
{&thread_237},
{&thread_238},
{&thread_239},
{&thread_240},
{&thread_241},
{&thread_242},
{&thread_243},
{&thread_244},
{&thread_245},
{&thread_246},
{&thread_247},
{&thread_248},
{&thread_249},
{&thread_250},
{&thread_251},
{&thread_252},
{&thread_253},
{&thread_254},
{&thread_255},
{&thread_0_1},
{&thread_1_1},
{&thread_2_1},
{&thread_3_1},
{&thread_4_1},
{&thread_5_1},
{&thread_6_1},
{&thread_7_1},
{&thread_8_1},
{&thread_9_1},
{&thread_10_1},
{&thread_11_1},
{&thread_12_1},
{&thread_13_1},
{&thread_14_1},
{&thread_15_1},
{&thread_16_1},
{&thread_17_1},
{&thread_18_1},
{&thread_19_1},
{&thread_20_1},
{&thread_21_1},
{&thread_22_1},
{&thread_23_1},
{&thread_24_1},
{&thread_25_1},
{&thread_26_1},
{&thread_27_1},
{&thread_28_1},
{&thread_29_1},
{&thread_30_1},
{&thread_31_1},
{&thread_32_1},
{&thread_33_1},
{&thread_34_1},
{&thread_35_1},
{&thread_36_1},
{&thread_37_1},
{&thread_38_1},
{&thread_39_1},
{&thread_40_1},
{&thread_41_1},
{&thread_42_1},
{&thread_43_1},
{&thread_44_1},
{&thread_45_1},
{&thread_46_1},
{&thread_47_1},
{&thread_48_1},
{&thread_49_1},
{&thread_50_1},
{&thread_51_1},
{&thread_52_1},
{&thread_53_1},
{&thread_54_1},
{&thread_55_1},
{&thread_56_1},
{&thread_57_1},
{&thread_58_1},
{&thread_59_1},
{&thread_60_1},
{&thread_61_1},
{&thread_62_1},
{&thread_63_1},
{&thread_64_1},
{&thread_65_1},
{&thread_66_1},
{&thread_67_1},
{&thread_68_1},
{&thread_69_1},
{&thread_70_1},
{&thread_71_1},
{&thread_72_1},
{&thread_73_1},
{&thread_74_1},
{&thread_75_1},
{&thread_76_1},
{&thread_77_1},
{&thread_78_1},
{&thread_79_1},
{&thread_80_1},
{&thread_81_1},
{&thread_82_1},
{&thread_83_1},
{&thread_84_1},
{&thread_85_1},
{&thread_86_1},
{&thread_87_1},
{&thread_88_1},
{&thread_89_1},
{&thread_90_1},
{&thread_91_1},
{&thread_92_1},
{&thread_93_1},
{&thread_94_1},
{&thread_95_1},
{&thread_96_1},
{&thread_97_1},
{&thread_98_1},
{&thread_99_1},
{&thread_100_1},
{&thread_101_1},
{&thread_102_1},
{&thread_103_1},
{&thread_104_1},
{&thread_105_1},
{&thread_106_1},
{&thread_107_1},
{&thread_108_1},
{&thread_109_1},
{&thread_110_1},
{&thread_111_1},
{&thread_112_1},
{&thread_113_1},
{&thread_114_1},
{&thread_115_1},
{&thread_116_1},
{&thread_117_1},
{&thread_118_1},
{&thread_119_1},
{&thread_120_1},
{&thread_121_1},
{&thread_122_1},
{&thread_123_1},
{&thread_124_1},
{&thread_125_1},
{&thread_126_1},
{&thread_127_1},
{&thread_128_1},
{&thread_129_1},
{&thread_130_1},
{&thread_131_1},
{&thread_132_1},
{&thread_133_1},
{&thread_134_1},
{&thread_135_1},
{&thread_136_1},
{&thread_137_1},
{&thread_138_1},
{&thread_139_1},
{&thread_140_1},
{&thread_141_1},
{&thread_142_1},
{&thread_143_1},
{&thread_144_1},
{&thread_145_1},
{&thread_146_1},
{&thread_147_1},
{&thread_148_1},
{&thread_149_1},
{&thread_150_1},
{&thread_151_1},
{&thread_152_1},
{&thread_153_1},
{&thread_154_1},
{&thread_155_1},
{&thread_156_1},
{&thread_157_1},
{&thread_158_1},
{&thread_159_1},
{&thread_160_1},
{&thread_161_1},
{&thread_162_1},
{&thread_163_1},
{&thread_164_1},
{&thread_165_1},
{&thread_166_1},
{&thread_167_1},
{&thread_168_1},
{&thread_169_1},
{&thread_170_1},
{&thread_171_1},
{&thread_172_1},
{&thread_173_1},
{&thread_174_1},
{&thread_175_1},
{&thread_176_1},
{&thread_177_1},
{&thread_178_1},
{&thread_179_1},
{&thread_180_1},
{&thread_181_1},
{&thread_182_1},
{&thread_183_1},
{&thread_184_1},
{&thread_185_1},
{&thread_186_1},
{&thread_187_1},
{&thread_188_1},
{&thread_189_1},
{&thread_190_1},
{&thread_191_1},
{&thread_192_1},
{&thread_193_1},
{&thread_194_1},
{&thread_195_1},
{&thread_196_1},
{&thread_197_1},
{&thread_198_1},
{&thread_199_1},
{&thread_200_1},
{&thread_201_1},
{&thread_202_1},
{&thread_203_1},
{&thread_204_1},
{&thread_205_1},
{&thread_206_1},
{&thread_207_1},
{&thread_208_1},
{&thread_209_1},
{&thread_210_1},
{&thread_211_1},
{&thread_212_1},
{&thread_213_1},
{&thread_214_1},
{&thread_215_1},
{&thread_216_1},
{&thread_217_1},
{&thread_218_1},
{&thread_219_1},
{&thread_220_1},
{&thread_221_1},
{&thread_222_1},
{&thread_223_1},
{&thread_224_1},
{&thread_225_1},
{&thread_226_1},
{&thread_227_1},
{&thread_228_1},
{&thread_229_1},
{&thread_230_1},
{&thread_231_1},
{&thread_232_1},
{&thread_233_1},
{&thread_234_1},
{&thread_235_1},
{&thread_236_1},
{&thread_237_1},
{&thread_238_1},
{&thread_239_1},
{&thread_240_1},
{&thread_241_1},
{&thread_242_1},
{&thread_243_1},
{&thread_244_1},
{&thread_245_1},
{&thread_246_1},
{&thread_247_1},
{&thread_248_1},
{&thread_249_1},
{&thread_250_1},
{&thread_251_1},
{&thread_252_1},
{&thread_253_1},
{&thread_254_1},
{&thread_255_1},
{&thread_0_2},
{&thread_1_2},
{&thread_2_2},
{&thread_3_2},
{&thread_4_2},
{&thread_5_2},
{&thread_6_2},
{&thread_7_2},
{&thread_8_2},
{&thread_9_2},
{&thread_10_2},
{&thread_11_2},
{&thread_12_2},
{&thread_13_2},
{&thread_14_2},
{&thread_15_2},
{&thread_16_2},
{&thread_17_2},
{&thread_18_2},
{&thread_19_2},
{&thread_20_2},
{&thread_21_2},
{&thread_22_2},
{&thread_23_2},
{&thread_24_2},
{&thread_25_2},
{&thread_26_2},
{&thread_27_2},
{&thread_28_2},
{&thread_29_2},
{&thread_30_2},
{&thread_31_2},
{&thread_32_2},
{&thread_33_2},
{&thread_34_2},
{&thread_35_2},
{&thread_36_2},
{&thread_37_2},
{&thread_38_2},
{&thread_39_2},
{&thread_40_2},
{&thread_41_2},
{&thread_42_2},
{&thread_43_2},
{&thread_44_2},
{&thread_45_2},
{&thread_46_2},
{&thread_47_2},
{&thread_48_2},
{&thread_49_2},
{&thread_50_2},
{&thread_51_2},
{&thread_52_2},
{&thread_53_2},
{&thread_54_2},
{&thread_55_2},
{&thread_56_2},
{&thread_57_2},
{&thread_58_2},
{&thread_59_2},
{&thread_60_2},
{&thread_61_2},
{&thread_62_2},
{&thread_63_2},
{&thread_64_2},
{&thread_65_2},
{&thread_66_2},
{&thread_67_2},
{&thread_68_2},
{&thread_69_2},
{&thread_70_2},
{&thread_71_2},
{&thread_72_2},
{&thread_73_2},
{&thread_74_2},
{&thread_75_2},
{&thread_76_2},
{&thread_77_2},
{&thread_78_2},
{&thread_79_2},
{&thread_80_2},
{&thread_81_2},
{&thread_82_2},
{&thread_83_2},
{&thread_84_2},
{&thread_85_2},
{&thread_86_2},
{&thread_87_2},
{&thread_88_2},
{&thread_89_2},
{&thread_90_2},
{&thread_91_2},
{&thread_92_2},
{&thread_93_2},
{&thread_94_2},
{&thread_95_2},
{&thread_96_2},
{&thread_97_2},
{&thread_98_2},
{&thread_99_2},
{&thread_100_2},
{&thread_101_2},
{&thread_102_2},
{&thread_103_2},
{&thread_104_2},
{&thread_105_2},
{&thread_106_2},
{&thread_107_2},
{&thread_108_2},
{&thread_109_2},
{&thread_110_2},
{&thread_111_2},
{&thread_112_2},
{&thread_113_2},
{&thread_114_2},
{&thread_115_2},
{&thread_116_2},
{&thread_117_2},
{&thread_118_2},
{&thread_119_2},
{&thread_120_2},
{&thread_121_2},
{&thread_122_2},
{&thread_123_2},
{&thread_124_2},
{&thread_125_2},
{&thread_126_2},
{&thread_127_2},
{&thread_128_2},
{&thread_129_2},
{&thread_130_2},
{&thread_131_2},
{&thread_132_2},
{&thread_133_2},
{&thread_134_2},
{&thread_135_2},
{&thread_136_2},
{&thread_137_2},
{&thread_138_2},
{&thread_139_2},
{&thread_140_2},
{&thread_141_2},
{&thread_142_2},
{&thread_143_2},
{&thread_144_2},
{&thread_145_2},
{&thread_146_2},
{&thread_147_2},
{&thread_148_2},
{&thread_149_2},
{&thread_150_2},
{&thread_151_2},
{&thread_152_2},
{&thread_153_2},
{&thread_154_2},
{&thread_155_2},
{&thread_156_2},
{&thread_157_2},
{&thread_158_2},
{&thread_159_2},
{&thread_160_2},
{&thread_161_2},
{&thread_162_2},
{&thread_163_2},
{&thread_164_2},
{&thread_165_2},
{&thread_166_2},
{&thread_167_2},
{&thread_168_2},
{&thread_169_2},
{&thread_170_2},
{&thread_171_2},
{&thread_172_2},
{&thread_173_2},
{&thread_174_2},
{&thread_175_2},
{&thread_176_2},
{&thread_177_2},
{&thread_178_2},
{&thread_179_2},
{&thread_180_2},
{&thread_181_2},
{&thread_182_2},
{&thread_183_2},
{&thread_184_2},
{&thread_185_2},
{&thread_186_2},
{&thread_187_2},
{&thread_188_2},
{&thread_189_2},
{&thread_190_2},
{&thread_191_2},
{&thread_192_2},
{&thread_193_2},
{&thread_194_2},
{&thread_195_2},
{&thread_196_2},
{&thread_197_2},
{&thread_198_2},
{&thread_199_2},
{&thread_200_2},
{&thread_201_2},
{&thread_202_2},
{&thread_203_2},
{&thread_204_2},
{&thread_205_2},
{&thread_206_2},
{&thread_207_2},
{&thread_208_2},
{&thread_209_2},
{&thread_210_2},
{&thread_211_2},
{&thread_212_2},
{&thread_213_2},
{&thread_214_2},
{&thread_215_2},
{&thread_216_2},
{&thread_217_2},
{&thread_218_2},
{&thread_219_2},
{&thread_220_2},
{&thread_221_2},
{&thread_222_2},
{&thread_223_2},
{&thread_224_2},
{&thread_225_2},
{&thread_226_2},
{&thread_227_2},
{&thread_228_2},
{&thread_229_2},
{&thread_230_2},
{&thread_231_2},
{&thread_232_2},
{&thread_233_2},
{&thread_234_2},
{&thread_235_2},
{&thread_236_2},
{&thread_237_2},
{&thread_238_2},
{&thread_239_2},
{&thread_240_2},
{&thread_241_2},
{&thread_242_2},
{&thread_243_2},
{&thread_244_2},
{&thread_245_2},
{&thread_246_2},
{&thread_247_2},
{&thread_248_2},
{&thread_249_2},
{&thread_250_2},
{&thread_251_2},
{&thread_252_2},
{&thread_253_2},
{&thread_254_2},
{&thread_255_2},
{&thread_0_3},
{&thread_1_3},
{&thread_2_3},
{&thread_3_3},
{&thread_4_3},
{&thread_5_3},
{&thread_6_3},
{&thread_7_3},
{&thread_8_3},
{&thread_9_3},
{&thread_10_3},
{&thread_11_3},
{&thread_12_3},
{&thread_13_3},
{&thread_14_3},
{&thread_15_3},
{&thread_16_3},
{&thread_17_3},
{&thread_18_3},
{&thread_19_3},
{&thread_20_3},
{&thread_21_3},
{&thread_22_3},
{&thread_23_3},
{&thread_24_3},
{&thread_25_3},
{&thread_26_3},
{&thread_27_3},
{&thread_28_3},
{&thread_29_3},
{&thread_30_3},
{&thread_31_3},
{&thread_32_3},
{&thread_33_3},
{&thread_34_3},
{&thread_35_3},
{&thread_36_3},
{&thread_37_3},
{&thread_38_3},
{&thread_39_3},
{&thread_40_3},
{&thread_41_3},
{&thread_42_3},
{&thread_43_3},
{&thread_44_3},
{&thread_45_3},
{&thread_46_3},
{&thread_47_3},
{&thread_48_3},
{&thread_49_3},
{&thread_50_3},
{&thread_51_3},
{&thread_52_3},
{&thread_53_3},
{&thread_54_3},
{&thread_55_3},
{&thread_56_3},
{&thread_57_3},
{&thread_58_3},
{&thread_59_3},
{&thread_60_3},
{&thread_61_3},
{&thread_62_3},
{&thread_63_3},
{&thread_64_3},
{&thread_65_3},
{&thread_66_3},
{&thread_67_3},
{&thread_68_3},
{&thread_69_3},
{&thread_70_3},
{&thread_71_3},
{&thread_72_3},
{&thread_73_3},
{&thread_74_3},
{&thread_75_3},
{&thread_76_3},
{&thread_77_3},
{&thread_78_3},
{&thread_79_3},
{&thread_80_3},
{&thread_81_3},
{&thread_82_3},
{&thread_83_3},
{&thread_84_3},
{&thread_85_3},
{&thread_86_3},
{&thread_87_3},
{&thread_88_3},
{&thread_89_3},
{&thread_90_3},
{&thread_91_3},
{&thread_92_3},
{&thread_93_3},
{&thread_94_3},
{&thread_95_3},
{&thread_96_3},
{&thread_97_3},
{&thread_98_3},
{&thread_99_3},
{&thread_100_3},
{&thread_101_3},
{&thread_102_3},
{&thread_103_3},
{&thread_104_3},
{&thread_105_3},
{&thread_106_3},
{&thread_107_3},
{&thread_108_3},
{&thread_109_3},
{&thread_110_3},
{&thread_111_3},
{&thread_112_3},
{&thread_113_3},
{&thread_114_3},
{&thread_115_3},
{&thread_116_3},
{&thread_117_3},
{&thread_118_3},
{&thread_119_3},
{&thread_120_3},
{&thread_121_3},
{&thread_122_3},
{&thread_123_3},
{&thread_124_3},
{&thread_125_3},
{&thread_126_3},
{&thread_127_3},
{&thread_128_3},
{&thread_129_3},
{&thread_130_3},
{&thread_131_3},
{&thread_132_3},
{&thread_133_3},
{&thread_134_3},
{&thread_135_3},
{&thread_136_3},
{&thread_137_3},
{&thread_138_3},
{&thread_139_3},
{&thread_140_3},
{&thread_141_3},
{&thread_142_3},
{&thread_143_3},
{&thread_144_3},
{&thread_145_3},
{&thread_146_3},
{&thread_147_3},
{&thread_148_3},
{&thread_149_3},
{&thread_150_3},
{&thread_151_3},
{&thread_152_3},
{&thread_153_3},
{&thread_154_3},
{&thread_155_3},
{&thread_156_3},
{&thread_157_3},
{&thread_158_3},
{&thread_159_3},
{&thread_160_3},
{&thread_161_3},
{&thread_162_3},
{&thread_163_3},
{&thread_164_3},
{&thread_165_3},
{&thread_166_3},
{&thread_167_3},
{&thread_168_3},
{&thread_169_3},
{&thread_170_3},
{&thread_171_3},
{&thread_172_3},
{&thread_173_3},
{&thread_174_3},
{&thread_175_3},
{&thread_176_3},
{&thread_177_3},
{&thread_178_3},
{&thread_179_3},
{&thread_180_3},
{&thread_181_3},
{&thread_182_3},
{&thread_183_3},
{&thread_184_3},
{&thread_185_3},
{&thread_186_3},
{&thread_187_3},
{&thread_188_3},
{&thread_189_3},
{&thread_190_3},
{&thread_191_3},
{&thread_192_3},
{&thread_193_3},
{&thread_194_3},
{&thread_195_3},
{&thread_196_3},
{&thread_197_3},
{&thread_198_3},
{&thread_199_3},
{&thread_200_3},
{&thread_201_3},
{&thread_202_3},
{&thread_203_3},
{&thread_204_3},
{&thread_205_3},
{&thread_206_3},
{&thread_207_3},
{&thread_208_3},
{&thread_209_3},
{&thread_210_3},
{&thread_211_3},
{&thread_212_3},
{&thread_213_3},
{&thread_214_3},
{&thread_215_3},
{&thread_216_3},
{&thread_217_3},
{&thread_218_3},
{&thread_219_3},
{&thread_220_3},
{&thread_221_3},
{&thread_222_3},
{&thread_223_3},
{&thread_224_3},
{&thread_225_3},
{&thread_226_3},
{&thread_227_3},
{&thread_228_3},
{&thread_229_3},
{&thread_230_3},
{&thread_231_3},
{&thread_232_3},
{&thread_233_3},
{&thread_234_3},
{&thread_235_3},
{&thread_236_3},
{&thread_237_3},
{&thread_238_3},
{&thread_239_3},
{&thread_240_3},
{&thread_241_3},
{&thread_242_3},
{&thread_243_3},
{&thread_244_3},
{&thread_245_3},
{&thread_246_3},
{&thread_247_3},
{&thread_248_3},
{&thread_249_3},
{&thread_250_3},
{&thread_251_3},
{&thread_252_3},
{&thread_253_3},
{&thread_254_3},
{&thread_255_3}
};
/* Define the test array. This used to store the randomized test. */
static TX_THREAD *_smp_randomized_test_array[TX_THREAD_SMP_MAX_CORES*2];
/* Define thread entry prototype. Since it won't be used it can be the same. */
static void control_thread_entry(ULONG thread_input);
static void thread_entry(ULONG thread_input);
/* Prototype for test control return. */
void test_control_return(UINT status);
static UINT pass;
static UINT start_pass;
static UINT end_pass;
/* Create a test control thread. */
static TX_THREAD control_thread;
/* Define what the initial system looks like. */
#ifdef CTEST
void test_application_define(void *first_unused_memory)
#else
void threadx_smp_random_resume_suspend_test(void *first_unused_memory)
#endif
{
CHAR *pointer;
UINT status;
/* Put first available memory address into a character pointer. */
pointer = (CHAR *) first_unused_memory;
/* Create a control thread to run the test. */
status = tx_thread_create(&control_thread, "control thread", control_thread_entry, 0,
pointer, 1024,
0, 0, TX_NO_TIME_SLICE, TX_AUTO_START);
/* Check status. */
if (status != TX_SUCCESS)
{
printf("Running SMP Random Suspensions/Resumptions Test..................... ERROR #1\n");
test_control_return(1);
}
}
static void control_thread_entry(ULONG thread_input)
{
UINT i, j;
UINT priority;
UINT source_index;
UINT successful_tests = 0;
UINT test_errors = 0;
TX_THREAD *thread_ptr;
TX_THREAD *current_thread;
UINT original_priority;
UINT status;
/* Pickup the current thread pointer. */
current_thread = tx_thread_identify();
/* Loop to create all the threads. */
i = 0;
priority = 0;
status = TX_SUCCESS;
while (i < 1024)
{
/* Create each thread. */
status += tx_thread_create(_smp_randomized_source_array[i], "test thread", thread_entry, i,
// (void *) pointer, 512,
malloc(1024), 1024,
priority, priority, TX_NO_TIME_SLICE, TX_DONT_START);
// pointer = pointer + 512;
/* Check status. */
if (status != TX_SUCCESS)
{
printf("Running SMP Random Suspensions/Resumptions Test..................... ERROR #2\n");
test_control_return(1);
break;
}
/* Move to next entry/priority. */
i++;
priority++;
/* Should priority be reset? */
if (priority >= TX_MAX_PRIORITIES)
{
/* Yes, reset the priority. */
priority = 0;
}
}
/* Start random test. */
printf("Running SMP Random Suspensions/Resumptions Test..................... ");
/* Clear system counters. */
pass = 0;
start_pass = 0;
end_pass = start_pass + MAX_PASSES;
do
{
/* Clear the randomized test array. */
for (i = 0; i < (TX_THREAD_SMP_MAX_CORES*2); i++)
{
_smp_randomized_test_array[i] = TX_NULL;
}
/* Build the randomized test array. */
for (i = 0; i < (TX_THREAD_SMP_MAX_CORES*2); i++)
{
do
{
source_index = (rand())%1024;
/* Determine if this index has repeated. */
thread_ptr = _smp_randomized_source_array[source_index];
/* Is this thread already in the test array? */
j = 0;
while (j < TX_THREAD_SMP_MAX_CORES*2)
{
/* Is the entry NULL? */
if (_smp_randomized_test_array[j] == TX_NULL)
{
j = (TX_THREAD_SMP_MAX_CORES*2);
}
/* Determine if we have a duplicate. */
if (_smp_randomized_test_array[j] == thread_ptr)
thread_ptr = TX_NULL;
j++;
}
} while (thread_ptr == TX_NULL);
/* Clear run counter. */
thread_ptr -> tx_thread_run_count = 0;
/* Save the thread pointer. */
_smp_randomized_test_array[i] = thread_ptr;
}
/* Now make all the random threads ready. */
for (i = 0; i < (TX_THREAD_SMP_MAX_CORES*2); i++)
{
status = tx_thread_resume(_smp_randomized_test_array[i]);
/* Check for an error. */
if (status != TX_SUCCESS)
{
printf("ERROR #3\n");
test_control_return(1);
break;
}
}
/* Check the status. */
if (status)
break;
/* Move to the lowest priority. */
status += tx_thread_priority_change(current_thread, TX_MAX_PRIORITIES-1, &original_priority);
tx_thread_relinquish();
/* At this point all the threads have run, or should have. */
/* Restore priority. */
status += tx_thread_priority_change(current_thread, original_priority, &original_priority);
/* Was there an error? */
if (status != TX_SUCCESS)
{
printf("ERROR #4\n");
test_control_return(1);
break;
}
/* Determine if all the threads in the the random sample ran. */
for (i = 0; i < (TX_THREAD_SMP_MAX_CORES*2); i++)
{
/* Pickup the thread pointer. */
thread_ptr = _smp_randomized_test_array[i];
/* Check to see if each thread has run. */
if (thread_ptr -> tx_thread_run_count == 0)
{
/* First, try to sleep to see if this helps! */
tx_thread_sleep(1);
}
/* Has the run count incremented? */
if (thread_ptr -> tx_thread_run_count == 0)
{
/* No, this thread didn't really run! */
printf("ERROR #5\n");
test_control_return(1);
break;
}
/* Make sure this thread suspended. */
while (thread_ptr -> tx_thread_state != TX_SUSPENDED)
{
/* Wait for the thread to complete! */
tx_thread_relinquish();
}
}
/* Increment the pass counter. */
pass++;
} while (pass < end_pass);
/* Test is successful! */
printf("SUCCESS!\n");
test_control_return(0);
}
static void thread_entry(ULONG id)
{
/* While forever loop! */
while(1)
{
/* Suspend thread! */
tx_thread_suspend(_smp_randomized_source_array[id]);
}
}