[SystemC] throw_it

SystemC 2.3では、Process Controlはかなり拡張されています。
今回は、「throw_it」についてです。

  • サンプルコード

  •  1|#include <stdio.h>
     2|#include <systemc.h>
     3|
     4|SC_MODULE( hoge ){
     5|
     6|  std::exception    ex;
     7|  sc_event          ev;
     8|  sc_process_handle t;
     9|  int               q;
    10|
    11|  SC_CTOR( hoge )
    12|  {
    13|    SC_THREAD( calling );
    14|    SC_THREAD( target );
    15|      t = sc_get_current_process_handle();
    16|  }
    17|
    18|  void calling(){
    19|    wait(10SC_NS);
    20|    ev.notify();
    21|
    22|    wait(10SC_NS);
    23|    t.reset();
    24|
    25|    wait(10SC_NS);
    26|    ev.notify();
    27|    t.throw_it(ex);
    28|
    29|    wait(10SC_NS);
    30|    t.kill();
    31|    assert( t.terminated() );
    32|
    33|    wait(10SC_NS);
    34|    ev.notify();
    35|  }
    36|
    37|  void target(){
    38|     q = 0;
    39|     while (1) {
    40|       try {
    41|         wait(ev);
    42|         ++q;
    43|         cout << sc_time_stamp();
    44|         cout << " q = " << q << endl;
    45|       }
    46|       catch (const std::exception& e)
    47|       {
    48|         cout << "catch Exception" << endl;
    49|         return;
    50|       }
    51|     }
    52|  }
    53|};
    54|
    55|int sc_main(int argc, char *argv[]) {
    56|
    57|  hoge mhoge("hoge");
    58|  sc_start(500sc_core::SC_NS);
    59|
    60|  return 0;
    61|}
  • 実行結果

  • $> ./main 
    
                 SystemC 2.3.0-ASI --- Feb 16 2013 23:56:43
            Copyright (c) 1996-2012 by all Contributors,
            ALL RIGHTS RESERVED
    
    10 ns q = 1
    catch Exception
    
    Fatal: (F539) sc_unwind_exception not re-thrown during kill/reset: hoge.target
    In file: ../../../../src/sysc/kernel/sc_except.cpp:67
    In process: hoge.target @ 20 ns
    中止 (コアダンプ)
    
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数