<?xml version="1.0" encoding="UTF-8"?>
<record
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd"
    xmlns="http://www.loc.gov/MARC21/slim">

  <leader>02495cam a22002897i 4500</leader>
  <controlfield tag="003">GSU</controlfield>
  <controlfield tag="005">20261006094706.0</controlfield>
  <controlfield tag="008">261006t20222023cc       b    001 0 eng d</controlfield>
  <datafield tag="020" ind1=" " ind2=" ">
    <subfield code="a">9781098119447 (paperback)</subfield>
  </datafield>
  <datafield tag="040" ind1=" " ind2=" ">
    <subfield code="b">eng</subfield>
    <subfield code="e">rda</subfield>
    <subfield code="c">GSU</subfield>
    <subfield code="d">GSU</subfield>
  </datafield>
  <datafield tag="050" ind1="0" ind2="0">
    <subfield code="a">QA76.73.R87</subfield>
    <subfield code="b">BOS</subfield>
  </datafield>
  <datafield tag="100" ind1="1" ind2=" ">
    <subfield code="a">Bos, Mara,</subfield>
    <subfield code="e">author.</subfield>
  </datafield>
  <datafield tag="245" ind1="1" ind2="0">
    <subfield code="a">Rust atomics and locks :</subfield>
    <subfield code="b">low-level concurrency in practice /</subfield>
    <subfield code="c">Mara Bos.</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="a">Sebastopol, Califonia :</subfield>
    <subfield code="b">O'Reilly Media,</subfield>
    <subfield code="c">&#xA9;2023</subfield>
  </datafield>
  <datafield tag="300" ind1=" " ind2=" ">
    <subfield code="a">xvii, 230 pages :</subfield>
    <subfield code="b">illustrations ;</subfield>
    <subfield code="c">24 cm</subfield>
  </datafield>
  <datafield tag="336" ind1=" " ind2=" ">
    <subfield code="a">text</subfield>
    <subfield code="b">txt</subfield>
    <subfield code="2">rdacontent</subfield>
  </datafield>
  <datafield tag="337" ind1=" " ind2=" ">
    <subfield code="a">unmediated</subfield>
    <subfield code="b">n</subfield>
    <subfield code="2">rdamedia</subfield>
  </datafield>
  <datafield tag="338" ind1=" " ind2=" ">
    <subfield code="a">volume</subfield>
    <subfield code="b">nc</subfield>
    <subfield code="2">rdacarrier</subfield>
  </datafield>
  <datafield tag="504" ind1=" " ind2=" ">
    <subfield code="a">Includes index.</subfield>
  </datafield>
  <datafield tag="505" ind1="0" ind2=" ">
    <subfield code="a">1. Basics of Rust Concurrency -- 2. Atomics -- 3. Memory Ordering -- 4. Building Our Own Spin Lock -- 5. Building Our Own Channels -- 6. Building Our Own "Arc" -- 7. Understanding the Processor -- 8. Operating System Primitives -- 9. Building Our Own Locks -- 10. Ideas and Inspiration.</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be very difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon. In this practical book, Mara Bos, leader of the Rust library team, helps Rust programmers of all levels gain a clear understanding of low-level concurrency. You'll learn everything about atomics and memory ordering and how they're combined with basic operating system APIs to build common primitives like mutexes and condition variables. Once you're done, you'll have a firm grasp of how Rust's memory model, the processor, and the role of the operating system all fit together. With this guide, you'll learn: How Rust's type system works exceptionally well for programming concurrency correctly All about mutexes, condition variables, atomics, and memory ordering What happens in practice with atomic operations on Intel and ARM processors How locks are implemented with support from the operating system How to write correct code that includes concurrency, atomics, and locks How to build your own locking and synchronization primitives correctly.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Rust (Computer program language)</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="0">
    <subfield code="a">Computer programming.</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="7">
    <subfield code="a">Computer programming.</subfield>
    <subfield code="2">fast</subfield>
  </datafield>
  <datafield tag="650" ind1=" " ind2="7">
    <subfield code="a">Rust (Computer program language)</subfield>
    <subfield code="2">fast</subfield>
  </datafield>
  <datafield tag="942" ind1=" " ind2=" ">
    <subfield code="2">lcc</subfield>
    <subfield code="c">BK</subfield>
    <subfield code="h">QA76.73.R87</subfield>
    <subfield code="k">QA</subfield>
    <subfield code="m">BOS</subfield>
    <subfield code="n">0</subfield>
  </datafield>
  <datafield tag="999" ind1=" " ind2=" ">
    <subfield code="c">2959</subfield>
    <subfield code="d">2959</subfield>
  </datafield>
  <datafield tag="952" ind1=" " ind2=" ">
    <subfield code="0">0</subfield>
    <subfield code="1">0</subfield>
    <subfield code="2">lcc</subfield>
    <subfield code="4">0</subfield>
    <subfield code="7">0</subfield>
    <subfield code="8">GC</subfield>
    <subfield code="a">GSULE</subfield>
    <subfield code="b">GSULE</subfield>
    <subfield code="c">GEN</subfield>
    <subfield code="d">2024-09-09</subfield>
    <subfield code="e">BAI</subfield>
    <subfield code="i">04787</subfield>
    <subfield code="l">0</subfield>
    <subfield code="o">QA76.73.R87 BOS</subfield>
    <subfield code="p">50000006021</subfield>
    <subfield code="r">2026-10-06 09:48:46</subfield>
    <subfield code="t">1</subfield>
    <subfield code="w">2024-09-09</subfield>
    <subfield code="y">BK</subfield>
  </datafield>
</record>
