pub struct SharedState<ColumnType, BranchFilter, C, DualStore>where
DualStore: UserDualStore,
BranchFilter: Clone + IBranchFilter,
C: Compare<Branch<BranchFilter, DualStore>> + Clone,{
pub best: RwLock<(f64, Vec<(f64, ColumnId)>)>,
pub open_branches: BlockingQueue<BranchFilter, C, DualStore>,
pub column_pool: RwLock<ColumnPool<ColumnType, BranchFilter>>,
pub last_integer_at_cp_size: AtomicUsize,
pub ui_sender: UISender,
pub start_time: Instant,
pub duration_root_node: Mutex<Option<Duration>>,
pub obj_root_node: Mutex<Option<f64>>,
pub duration_lds_root_node: Mutex<Option<Duration>>,
pub time_limit: Option<Instant>,
pub phase: RwLock<Phase>,
}
Expand description
Struct storing information about branch and price progress That is shared among all workers.
Contains open branches, bound and progress information
Fields§
§best: RwLock<(f64, Vec<(f64, ColumnId)>)>
§open_branches: BlockingQueue<BranchFilter, C, DualStore>
§column_pool: RwLock<ColumnPool<ColumnType, BranchFilter>>
§last_integer_at_cp_size: AtomicUsize
§ui_sender: UISender
§start_time: Instant
§duration_root_node: Mutex<Option<Duration>>
§obj_root_node: Mutex<Option<f64>>
§duration_lds_root_node: Mutex<Option<Duration>>
§time_limit: Option<Instant>
§phase: RwLock<Phase>
Implementations§
pub fn new( column_pool: ColumnPool<ColumnType, BranchFilter>, ui: &UI, timelimit: Option<Instant>, open_branches: BlockingQueue<BranchFilter, C, DualStore>, ) -> Self
Auto Trait Implementations§
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more