pub fn start(slf: VWeak<Consumer, P>, isolated: bool) {
        loop {
            // Read from global buffer to the local buffer
            if !P::transaction(|j| {                                            may_crash!();
                if let Some(slf) = slf.promote(j) {                             may_crash!();
                    let mut this = slf.data.lock(j);                            may_crash!();
                    if this.buf.is_empty() {                                    may_crash!();
                        let mut rem = 0;                                        may_crash!();
                        let line = if !isolated {                               may_crash!();
                            let mut lines = slf.lines.lock(j);                  may_crash!();
                            rem = lines.len();                                  may_crash!();
                            lines.pop(j)
                        } else {                                                may_crash!();
                            this.private_lines.pop(j)
                        };
                        if unsafe { crate::PRINT } {
                            if !isolated {
                                eprint!(
                                    "\r\x1b[?25lRemaining: {:<12} Memory usage: {:<9} bytes \x1b[?25h",
                                    rem,
                                    P::used()
                                );
                            } else {
                                eprint!(
                                    "\r\x1b[?25lMemory usage: {:<9} bytes \x1b[?25h",
                                    P::used()
                                );
                            } 
                        }
                        if let Some(line) = line {                              may_crash!();
                            this.buf = line;                                    may_crash!();
                            true // Still working
                        } else {                                                may_crash!();
                            this.active
                        }
                    } else {                                                    may_crash!();
                        true
                    }
                } else {
                    false
                }
            }).unwrap() {
                return;
            }

            // counting words
            P::transaction(|j| {
                if let Some(slf) = slf.promote(j) {                             may_crash!();
                    let mut this = slf.data.lock(j);                            may_crash!();
                    if !this.buf.is_empty() {                                   may_crash!();
                        let buf = this.buf.to_string();                         may_crash!();
                        let re = Regex::new(slf.pattern.as_str()).unwrap();     may_crash!();

                        for cap in re.captures_iter(&buf) {                     may_crash!();
                            let w = cap.get(1).unwrap().as_str().to_pstring(j); may_crash!();
                            this.local.update_with(&w, j, |v| v + 1);           may_crash!();
                        }
                        this.buf.clear();                                       may_crash!();
                    }
                }
            }).unwrap();
        }
    }
/// Starts processing `lines` and updating `words`
Starts processing `lines` and updating `words`
Starts processing ` lines ` and updating ` words `
pub fn start(slf: VWeak<Consumer, P>, isolated: bool) {
        loop {
            // Read from global buffer to the local buffer
            if !P::transaction(|j| {                                            may_crash!();
                if let Some(slf) = slf.promote(j) {                             may_crash!();
                    let mut this = slf.data.lock(j);                            may_crash!();
                    if this.buf.is_empty() {                                    may_crash!();
                        let mut rem = 0;                                        may_crash!();
                        let line = if !isolated {                               may_crash!();
                            let mut lines = slf.lines.lock(j);                  may_crash!();
                            rem = lines.len();                                  may_crash!();
                            lines.pop(j)
                        } else {                                                may_crash!();
                            this.private_lines.pop(j)
                        };
                        if unsafe { crate::PRINT } {
                            if !isolated {
                                eprint!(
                                    "\r\x1b[?25lRemaining: {:<12} Memory usage: {:<9} bytes \x1b[?25h",
                                    rem,
                                    P::used()
                                );
                            } else {
                                eprint!(
                                    "\r\x1b[?25lMemory usage: {:<9} bytes \x1b[?25h",
                                    P::used()
                                );
                            } 
                        }
                        if let Some(line) = line {                              may_crash!();
                            this.buf = line;                                    may_crash!();
                            true // Still working
                        } else {                                                may_crash!();
                            this.active
                        }
                    } else {                                                    may_crash!();
                        true
                    }
                } else {
                    false
                }
            }).unwrap() {
                return;
            }
            // counting words
            P::transaction(|j| {
                if let Some(slf) = slf.promote(j) {                             may_crash!();
                    let mut this = slf.data.lock(j);                            may_crash!();
                    if !this.buf.is_empty() {                                   may_crash!();
                        let buf = this.buf.to_string();                         may_crash!();
                        let re = Regex::new(slf.pattern.as_str()).unwrap();     may_crash!();
                        for cap in re.captures_iter(&buf) {                     may_crash!();
                            let w = cap.get(1).unwrap().as_str().to_pstring(j); may_crash!();
                            this.local.update_with(&w, j, |v| v + 1);           may_crash!();
                        }
                        this.buf.clear();                                       may_crash!();
                    }
                }
            }).unwrap();
        }
    }
pub fn start ( slf : VWeak < Consumer , P > , isolated : bool ) { loop { // Read from global buffer to the local buffer if ! P :: transaction ( | j | { may_crash ! ( ) ; if let Some ( slf ) = slf . promote ( j ) { may_crash ! ( ) ; let mut this = slf . data . lock ( j ) ; may_crash ! ( ) ; if this . buf . is_empty ( ) { may_crash ! ( ) ; let mut rem = 0 ; may_crash ! ( ) ; let line = if ! isolated { may_crash ! ( ) ; let mut lines = slf . lines . lock ( j ) ; may_crash ! ( ) ; rem = lines . len ( ) ; may_crash ! ( ) ; lines . pop ( j ) } else { may_crash ! ( ) ; this . private_lines . pop ( j ) } ; if unsafe { crate :: PRINT } { if ! isolated { eprint ! ( " \r \x1b \x1b " rem P used ( ) ) ; } else { eprint ! ( " \r \x1b \x1b " P used ( ) ) ; } } if let Some ( line ) = line { may_crash ! ( ) ; this . buf = line ; may_crash ! ( ) ; true // Still working } else { may_crash ! ( ) ; this . active } } else { may_crash ! ( ) ; true } } else { false } } ) . unwrap ( ) { return ; } // counting words P :: transaction ( | j | { if let Some ( slf ) = slf . promote ( j ) { may_crash ! ( ) ; let mut this = slf . data . lock ( j ) ; may_crash ! ( ) ; if ! this . buf . is_empty ( ) { may_crash ! ( ) ; let buf = this . buf . to_string ( ) ; may_crash ! ( ) ; let re = Regex :: new ( slf . pattern . as_str ( ) ) . unwrap ( ) ; may_crash ! ( ) ; for cap in re . captures_iter ( & buf ) { may_crash ! ( ) ; let w = cap . get ( 1 ) . unwrap ( ) . as_str ( ) . to_pstring ( j ) ; may_crash ! ( ) ; this . local . update_with ( & w , j , | v | v + 1 ) ; may_crash ! ( ) ; } this . buf . clear ( ) ; may_crash ! ( ) ; } } } ) . unwrap ( ) ; } }
Starts processing `lines` and updating `words`
Starts processing ` lines ` and updating ` words `
slf
VWeak<Consumer, P>
isolated
bool