Switch accounts storage lock to DashMap (#12126)
Co-authored-by: Carl Lin <carl@solana.com>
This commit is contained in:
@@ -303,7 +303,6 @@ impl Accounts {
|
||||
//PERF: hold the lock to scan for the references, but not to clone the accounts
|
||||
//TODO: two locks usually leads to deadlocks, should this be one structure?
|
||||
let accounts_index = self.accounts_db.accounts_index.read().unwrap();
|
||||
let storage = self.accounts_db.storage.read().unwrap();
|
||||
|
||||
let fee_config = FeeConfig {
|
||||
secp256k1_program_enabled: feature_set
|
||||
@@ -328,7 +327,7 @@ impl Accounts {
|
||||
};
|
||||
|
||||
let load_res = self.load_tx_accounts(
|
||||
&storage,
|
||||
&self.accounts_db.storage,
|
||||
ancestors,
|
||||
&accounts_index,
|
||||
tx,
|
||||
@@ -343,7 +342,7 @@ impl Accounts {
|
||||
};
|
||||
|
||||
let load_res = Self::load_loaders(
|
||||
&storage,
|
||||
&self.accounts_db.storage,
|
||||
ancestors,
|
||||
&accounts_index,
|
||||
tx,
|
||||
@@ -1507,10 +1506,9 @@ mod tests {
|
||||
let ancestors = vec![(0, 0)].into_iter().collect();
|
||||
|
||||
let accounts_index = accounts.accounts_db.accounts_index.read().unwrap();
|
||||
let storage = accounts.accounts_db.storage.read().unwrap();
|
||||
assert_eq!(
|
||||
Accounts::load_executable_accounts(
|
||||
&storage,
|
||||
&accounts.accounts_db.storage,
|
||||
&ancestors,
|
||||
&accounts_index,
|
||||
&Pubkey::new_rand(),
|
||||
|
Reference in New Issue
Block a user