change comment

This commit is contained in:
ichiichi11
2021-03-21 23:53:06 +09:00
parent 61ce8415bd
commit f7ae24a785

View File

@@ -39,6 +39,7 @@ impl Detection {
// transform from evtx files into json
let records = self.evtx_to_jsons(evtx_files);
runtime::Runtime::new()
.unwrap()
.block_on(self.execute_rule(rules, records));
@@ -194,16 +195,14 @@ impl Detection {
}
async fn execute_rule(&mut self, rules: Vec<RuleNode>, records: Vec<Value>) {
// 排他制御と所有権共有ため、recordをRwLockとArcで囲む
// recordは不変参照(mutが不要)なので、不変参照なら複数スレッドが同時にロックを取得できるようにRwLockを用いている。
// RwLockの代わりにMutexを使うこともできるが、これは不変参照であっても同時に1スレッドしかロックを取得できず、パフォーマンスが良くないと思う。
// 複数スレッドで所有権共有するため、recordsをArcでwwap
let mut records_arcs = vec![];
for record_chunk in Detection::chunks(records, num_cpus::get() * 4) {
let record_chunk_arc = Arc::new(record_chunk);
records_arcs.push(record_chunk_arc);
}
// 所有権共有ため、ruleをArcで囲む
// 複数スレッドで所有権共有するため、rulesをArcでwwap
let rules_arc = Arc::new(rules);
// ルール実行するスレッドを作成。