about summary refs log tree commit diff
path: root/src/libcore/cell.rs
AgeCommit message (Collapse)AuthorLines
2019-10-03Reorder methods of CellShotaro Yamada-46/+46
To make `new` method appear first in documentation.
2019-07-27Auto merge of #62748 - luca-barbieri:optimize-refcell-borrow, r=RalfJungbors-5/+15
Optimize RefCell read borrowing Instead of doing two comparisons we can do only one with a bit of cleverness. LLVM currently can't do this optimization itself on x86-64.
2019-07-21fix commentLuca Barbieri-1/+1
2019-07-21Expand comment on BorrowRef::newLuca Barbieri-2/+12
2019-07-17Optimize RefCell read borrowingLuca Barbieri-3/+3
Instead of doing two comparisons we can do only one with a bit of cleverness. LLVM currently can't do this optimization itself on x86-64.
2019-07-16state also in the intro that UnsafeCell has no effect on &mutRalf Jung-2/+3
2019-07-13add spaces in front of trait requirementsDodo-6/+6
2019-06-07Stabilize Cell::from_mut and as_slice_of_cellsSimon Sapin-4/+2
FCP: https://github.com/rust-lang/rust/issues/43038#issuecomment-499900463
2019-06-05Aggregation of drive-by cosmetic changes.Alexander Regueiro-1/+1
2019-05-30Rollup merge of #60850 - SimonSapin:unguarded, r=alexcrichtonMazdak Farrokhzad-2/+1
Stabilize RefCell::try_borrow_unguarded Servo has been using this since https://github.com/servo/servo/pull/23196 to add a runtime check to some unsafe code, as discussed in PR https://github.com/rust-lang/rust/pull/59211. Stabilizing would help do more of the same in libraries that also have users on Stable.
2019-05-23typoBrent Kerby-1/+1
2019-05-21Simplify RefCell minimum_spanning_tree exampleBrent Kerby-24/+22
2019-05-15Stabilize RefCell::try_borrow_unguardedSimon Sapin-2/+1
Servo has been using this since https://github.com/servo/servo/pull/23196 to add a runtime check to some unsafe code, as discussed in PR https://github.com/rust-lang/rust/pull/59211. Stabilizing would help do more of the same in libraries that also have users on Stable.
2019-04-19libcore: deny more...Mazdak Farrokhzad-10/+10
2019-04-18libcore => 2018Taiki Endo-6/+6
2019-04-11Auto merge of #59211 - nox:refcell-borrow-state, r=KodrAusbors-0/+38
Introduce RefCell::try_borrow_unguarded *Come sit next to the fireplace with me, this is going to be a long story.* So, you may already be aware that Servo has weird design constraints that forces us developers working on it to do weird things. The thing that interests us today is that we do layout on a separate thread with its own thread pool to do some things in parallel, whereas the data it uses comes from the script thread, which implements the entire DOM and related pieces, with `!Sync` data types such as `RefCell<T>`. The invariant we maintain is that script does not do anything ever with the DOM data as long as layout is doing its job. That's all nice and all, but one thing we don't ensure is that we don't actually know if script was currently mutably borrowing some `RefCell<T>` prior to starting layout, which may lead to aliasing mutable memory and obviously undefined behaviour. This PR reinstates `RefCell::borrow_state` so that [this method](https://github.com/servo/servo/blob/master/components/script/dom/bindings/cell.rs#L23-L30) can make use of it and return `None` if the cell was mutably borrowed. Cc @SimonSapin
2019-03-31Rollup merge of #59581 - jmcomets:stabilize-refcell_replace_swap, r=CentrilMazdak Farrokhzad-4/+1
Stabilize refcell_replace_swap feature Please be kind, this is my first time contributing. :smile: I noticed #43570 only needs stabilizing (and I need it for a side project I'm working on), so I followed the [guide](https://rust-lang.github.io/rustc-guide/stabilization_guide.html#stabilization-pr) to move things forward. I'm happy to amend things if needed, let me know!
2019-03-31refcell_replace_swap: remove feature gate & obsolete documentation itemJean-Marie Comets-2/+0
2019-03-31Stabilize refcell_replace_swap feature, closes #43570Jean-Marie Comets-2/+1
2019-03-30Fix doc testsFabian Drinck-1/+0
2019-03-19Introduce RefCell::try_borrow_unguardedAnthony Ramine-49/+38
This replaces RefCell::borrow_state to something that encodes the use case of Servo better.
2019-03-18Stabilize refcell_map_split featureJoshua Liebow-Feeser-4/+2
- Closes #51476
2019-03-16Tweak documentation of RefCell::borrow_stateAnthony Ramine-6/+10
2019-03-15Revert "Deprecate std::cell::RefCell::borrow_state"Anthony Ramine-4/+0
This reverts commit dc2d5058e999abb18ab2686b4e3e385ec6e36666.
2019-03-15Revert "Remove RefCell::borrow_state"Anthony Ramine-0/+49
This reverts commit 313aab8fbeb98730f8ffa741ccf54f843d5e3525.
2019-02-10libs: doc commentsAlexander Regueiro-4/+4
2019-02-10tests: doc commentsAlexander Regueiro-4/+4
2018-12-25Remove licensesMark Rousskov-10/+0
2018-12-07Various minor/cosmetic improvements to codeAlexander Regueiro-2/+2
2018-11-17add comment explaining why what we do is legalRalf Jung-0/+2
2018-11-16avoid shared ref in UnsafeCell::getRalf Jung-1/+1
2018-11-10revert making internal APIs const fn.Mazdak Farrokhzad-2/+2
2018-11-10constify parts of libcore.Mazdak Farrokhzad-4/+4
2018-10-26Slight copy-editing for `std::cell::Cell` docsGeoffry Song-4/+5
Hopefully this is a bit more precise and also more correct English.
2018-09-29Use impl_header_lifetime_elision in libcoreScott McMurray-9/+9
2018-08-04Remove redundant field names in structsljedrz-3/+3
2018-07-25Enforce #![deny(bare_trait_objects)] in src/libcoreljedrz-3/+3
2018-07-23use inherent method insteadF001-12/+20
2018-07-18revert DerefF001-17/+9
2018-07-17impl DerefMut for Cell<[T]>F001-0/+10
2018-07-17code style fixesF001-2/+4
2018-07-17impl `Deref` instead of `Index`F001-10/+8
2018-07-17use lifetime elision for consistencyF001-1/+1
2018-07-17remove "get_with" methodF001-24/+2
2018-07-17implement rfc 1789F001-44/+103
2018-07-04Auto merge of #51395 - SimonSapin:repr-transparent, r=SimonSapinbors-0/+2
Add #[repr(transparent)] to some libcore types * `UnsafeCell` * `Cell` * `NonZero*` * `NonNull` * `Unique` CC https://github.com/rust-lang/rust/issues/43036
2018-06-27Optimize RefCell refcount trackingJoshua Liebow-Feeser-30/+36
2018-06-16Add #[repr(transparent)] to some libcore typesSimon Sapin-0/+2
* `UnsafeCell` * `Cell` * `NonZero*` * `NonNull` * `Unique`
2018-06-13Add Ref/RefMut map_split methodJoshua Liebow-Feeser-19/+126
2018-05-23Rollup merge of #50913 - d-e-s-o:fix-typo, r=joshtriplettkennytm-1/+1
Fix typo in cell.rs