0% found this document useful (0 votes)
33 views

34654

The document provides information about various eBooks available for download on ebookluna.com, including titles such as 'The Art of Multiprocessor Programming' and 'The Human Body in Health and Illness'. It highlights the availability of different formats like PDF, ePub, and MOBI for instant digital products. Additionally, it includes details about the publisher and copyright information for the featured books.

Uploaded by

batostzen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

34654

The document provides information about various eBooks available for download on ebookluna.com, including titles such as 'The Art of Multiprocessor Programming' and 'The Human Body in Health and Illness'. It highlights the availability of different formats like PDF, ePub, and MOBI for instant digital products. Additionally, it includes details about the publisher and copyright information for the featured books.

Uploaded by

batostzen
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

Read Anytime Anywhere Easy Ebook Downloads at ebookluna.

com

The Art of Multiprocessor Programming 2nd Edition


Maurice Herlihy - eBook PDF

https://ebookluna.com/download/the-art-of-multiprocessor-
programming-ebook-pdf/

OR CLICK HERE

DOWLOAD EBOOK

Visit and Get More Ebook Downloads Instantly at https://ebookluna.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

(eBook PDF) The Art of Access: Strategies for Acquiring


Public Records 2nd Edition

https://ebookluna.com/product/ebook-pdf-the-art-of-access-strategies-
for-acquiring-public-records-2nd-edition/

ebookluna.com

(eBook PDF) Fundamentals: Perspectives on the Art and


Science of Canadian Nursing 2nd Edition

https://ebookluna.com/product/ebook-pdf-fundamentals-perspectives-on-
the-art-and-science-of-canadian-nursing-2nd-edition/

ebookluna.com

(eBook PDF) A History of Roman Art 2nd Edition

https://ebookluna.com/product/ebook-pdf-a-history-of-roman-art-2nd-
edition/

ebookluna.com

The Human Body in Health and Illness 7th Edition Barbara


Herlihy - eBook PDF

https://ebookluna.com/download/the-human-body-in-health-and-illness-
ebook-pdf/

ebookluna.com
(eBook PDF) The Art of Electronics 3rd Edition

https://ebookluna.com/product/ebook-pdf-the-art-of-electronics-3rd-
edition/

ebookluna.com

(eBook PDF) The Art of Leadership 6th Edition

https://ebookluna.com/product/ebook-pdf-the-art-of-leadership-6th-
edition/

ebookluna.com

(eBook PDF) The Power of Art 3rd Edition

https://ebookluna.com/product/ebook-pdf-the-power-of-art-3rd-edition/

ebookluna.com

(eBook PDF) Fundamentals of C# Programming for Information


Systems 2nd Edition

https://ebookluna.com/product/ebook-pdf-fundamentals-of-c-programming-
for-information-systems-2nd-edition/

ebookluna.com

(eBook PDF) Fundamentals of C# Programming for Information


Systems 2nd Edition

https://ebookluna.com/product/ebook-pdf-fundamentals-of-c-programming-
for-information-systems-2nd-edition-2/

ebookluna.com
The Art of
Multiprocessor
Programming
The Art of
Multiprocessor
Programming
Second Edition

Maurice Herlihy
Nir Shavit
Victor Luchangco
Michael Spear
Morgan Kaufmann is an imprint of Elsevier
50 Hampshire Street, 5th Floor, Cambridge, MA 02139, United States
Copyright © 2021 Elsevier Inc. All rights reserved.
No part of this publication may be reproduced or transmitted in any form or by any means, electronic
or mechanical, including photocopying, recording, or any information storage and retrieval system,
without permission in writing from the publisher. Details on how to seek permission, further
information about the Publisher’s permissions policies and our arrangements with organizations such
as the Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website:
www.elsevier.com/permissions.
This book and the individual contributions contained in it are protected under copyright by the
Publisher (other than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience
broaden our understanding, changes in research methods, professional practices, or medical treatment
may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in evaluating
and using any information, methods, compounds, or experiments described herein. In using such
information or methods they should be mindful of their own safety and the safety of others, including
parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume
any liability for any injury and/or damage to persons or property as a matter of products liability,
negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas
contained in the material herein.

Library of Congress Cataloging-in-Publication Data


A catalog record for this book is available from the Library of Congress

British Library Cataloguing-in-Publication Data


A catalogue record for this book is available from the British Library

ISBN: 978-0-12-415950-1

For information on all Morgan Kaufmann publications


visit our website at https://www.elsevier.com/books-and-journals

Publisher: Katey Birtcher


Acquisitions Editor: Stephen R. Merken
Editorial Project Manager: Beth LoGiudice
Production Project Manager: Beula Christopher
Designer: Renee Duenow
Typeset by VTeX
For my parents, David and Patricia Herlihy, and for Liuba, David,
and Anna.
– M.H.

For Noun and Aliza, Shafi, Yonadav, and Lior, and for Luisa.
– N.S.

For my family, especially my parents, Guilly and Maloy Luchangco,


and for God, who makes all things possible.
– V.L.

For Emily, Theodore, Bernadette, Adelaide, Teresa, Veronica, Phoebe,


Leo, and Rosemary.
– M.S.
Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Suggested ways to teach the art of multiprocessor programming . . . . . . . . . . . xxi
CHAPTER 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Shared objects and synchronization . . . . . . . . . . . . . . . . . . . . 3
1.2 A fable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Properties of a mutual exclusion protocol . . . . . . . . . . 8
1.2.2 The moral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 The producer–consumer problem . . . . . . . . . . . . . . . . . . . . . . 9
1.4 The readers–writers problem . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 The harsh realities of parallelization . . . . . . . . . . . . . . . . . . . . 12
1.6 Parallel programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

PART 1 Principles
CHAPTER 2 Mutual exclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1 Time and events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Critical sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Two-thread solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.1 The LockOne class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.3.2 The LockTwo class . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.3 The Peterson lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Notes on deadlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5 The filter lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.6 Fairness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.7 Lamport’s Bakery algorithm . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.8 Bounded timestamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.9 Lower bounds on the number of locations . . . . . . . . . . . . . . . 39
2.10 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
CHAPTER 3 Concurrent objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 Concurrency and correctness . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.2 Sequential objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3 Sequential consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.1 Sequential consistency versus real-time order . . . . . . . 55
3.3.2 Sequential consistency is nonblocking . . . . . . . . . . . . . 56

vii
viii Contents

3.3.3 Compositionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.4 Linearizability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.1 Linearization points . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4.2 Linearizability versus sequential consistency . . . . . . . . 59
3.5 Quiescent consistency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.5.1 Properties of quiescent consistency . . . . . . . . . . . . . . . 60
3.6 Formal definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.1 Histories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
3.6.2 Linearizability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.3 Linearizability is compositional . . . . . . . . . . . . . . . . . . 63
3.6.4 Linearizability is nonblocking . . . . . . . . . . . . . . . . . . . 63
3.7 Memory consistency models . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.8 Progress conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.8.1 Wait-freedom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.8.2 Lock-freedom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.8.3 Obstruction-freedom . . . . . . . . . . . . . . . . . . . . . . . . . . 66
3.8.4 Blocking progress conditions . . . . . . . . . . . . . . . . . . . 67
3.8.5 Characterizing progress conditions . . . . . . . . . . . . . . . 67
3.9 Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.10 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
CHAPTER 4 Foundations of shared memory . . . . . . . . . . . . . . . . . . 75
4.1 The space of registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2 Register constructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.2.1 Safe MRSW registers . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2.2 A regular Boolean MRSW register . . . . . . . . . . . . . . . 83
4.2.3 A regular M-valued MRSW register . . . . . . . . . . . . . . 84
4.2.4 An atomic SRSW register . . . . . . . . . . . . . . . . . . . . . . 85
4.2.5 An atomic MRSW register . . . . . . . . . . . . . . . . . . . . . 87
4.2.6 An atomic MRMW register . . . . . . . . . . . . . . . . . . . . . 90
4.3 Atomic snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
4.3.1 An obstruction-free snapshot . . . . . . . . . . . . . . . . . . . . 92
4.3.2 A wait-free snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3.3 Correctness arguments . . . . . . . . . . . . . . . . . . . . . . . . 97
4.4 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.5 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
CHAPTER 5 The relative power of primitive synchronization
operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.1 Consensus numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
5.1.1 States and valence . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.2 Atomic registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.3 Consensus protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5.4 FIFO queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Contents ix

5.5 Multiple assignment objects . . . . . . . . . . . . . . . . . . . . . . . . . . 113


5.6 Read–modify–write operations . . . . . . . . . . . . . . . . . . . . . . . 116
5.7 Common2 RMW operations . . . . . . . . . . . . . . . . . . . . . . . . . 117
5.8 The compareAndSet operation . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.9 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
CHAPTER 6 Universality of consensus . . . . . . . . . . . . . . . . . . . . . . . 129
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6.2 Universality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.3 A lock-free universal construction . . . . . . . . . . . . . . . . . . . . . 130
6.4 A wait-free universal construction . . . . . . . . . . . . . . . . . . . . . 134
6.5 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

PART 2 Practice
CHAPTER 7 Spin locks and contention . . . . . . . . . . . . . . . . . . . . . . . 147
7.1 Welcome to the real world . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2 Volatile fields and atomic objects . . . . . . . . . . . . . . . . . . . . . . 150
7.3 Test-and-set locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.4 Exponential back-off . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.5 Queue locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.5.1 Array-based locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
7.5.2 The CLH queue lock . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.5.3 The MCS queue lock . . . . . . . . . . . . . . . . . . . . . . . . . . 161
7.6 A queue lock with timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . 163
7.7 Hierarchical locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
7.7.1 A hierarchical back-off lock . . . . . . . . . . . . . . . . . . . . 167
7.7.2 Cohort locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
7.7.3 A cohort lock implementation . . . . . . . . . . . . . . . . . . . 170
7.8 A composite lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
7.9 A fast path for threads running alone . . . . . . . . . . . . . . . . . . . 178
7.10 One lock to rule them all . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.11 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.12 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
CHAPTER 8 Monitors and blocking synchronization . . . . . . . . . . . 183
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.2 Monitor locks and conditions . . . . . . . . . . . . . . . . . . . . . . . . . 183
8.2.1 Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
8.2.2 The lost-wakeup problem . . . . . . . . . . . . . . . . . . . . . . 187
8.3 Readers–writers locks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.3.1 Simple readers–writers lock . . . . . . . . . . . . . . . . . . . . 190
8.3.2 Fair readers–writers lock . . . . . . . . . . . . . . . . . . . . . . . 192
x Contents

8.4 Our own reentrant lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194


8.5 Semaphores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
8.6 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
CHAPTER 9 Linked lists: The role of locking . . . . . . . . . . . . . . . . . 201
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
9.2 List-based sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.3 Concurrent reasoning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
9.4 Coarse-grained synchronization . . . . . . . . . . . . . . . . . . . . . . . 206
9.5 Fine-grained synchronization . . . . . . . . . . . . . . . . . . . . . . . . . 207
9.6 Optimistic synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . 211
9.7 Lazy synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.8 Nonblocking synchronization . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.9 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
9.10 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
9.11 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
CHAPTER 10 Queues, memory management, and the ABA
problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.2 Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.3 A bounded partial queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
10.4 An unbounded total queue . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
10.5 A lock-free unbounded queue . . . . . . . . . . . . . . . . . . . . . . . . 236
10.6 Memory reclamation and the ABA problem . . . . . . . . . . . . . . 240
10.6.1 A naïve synchronous queue . . . . . . . . . . . . . . . . . . . . . 244
10.7 Dual data structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
10.8 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
10.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
CHAPTER 11 Stacks and elimination . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.2 An unbounded lock-free stack . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3 Elimination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
11.4 The elimination back-off stack . . . . . . . . . . . . . . . . . . . . . . . . 255
11.4.1 A lock-free exchanger . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.4.2 The elimination array . . . . . . . . . . . . . . . . . . . . . . . . . 257
11.5 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
11.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
CHAPTER 12 Counting, sorting, and distributed coordination . . . 265
12.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
12.2 Shared counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
12.3 Software combining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
12.3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Visit https://testbankfan.com
now to explore a rich
collection of testbank or
solution manual and enjoy
exciting offers!
Contents xi

12.3.2 An extended example . . . . . . . . . . . . . . . . . . . . . . . . . 274


12.3.3 Performance and robustness . . . . . . . . . . . . . . . . . . . . 275
12.4 Quiescently consistent pools and counters . . . . . . . . . . . . . . . 276
12.5 Counting networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.5.1 Networks that count . . . . . . . . . . . . . . . . . . . . . . . . . . 276
12.5.2 The bitonic counting network . . . . . . . . . . . . . . . . . . . 279
12.5.3 Performance and pipelining . . . . . . . . . . . . . . . . . . . . . 287
12.6 Diffracting trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
12.7 Parallel sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
12.8 Sorting networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
12.8.1 Designing a sorting network . . . . . . . . . . . . . . . . . . . . 294
12.9 Sample sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
12.10 Distributed coordination . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
12.11 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
12.12 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
CHAPTER 13 Concurrent hashing and natural parallelism . . . . . . 305
13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
13.2 Closed-address hash sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
13.2.1 A coarse-grained hash set . . . . . . . . . . . . . . . . . . . . . . 308
13.2.2 A striped hash set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
13.2.3 A refinable hash set . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
13.3 A lock-free hash set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
13.3.1 Recursive split-ordering . . . . . . . . . . . . . . . . . . . . . . . 315
13.3.2 The BucketList class . . . . . . . . . . . . . . . . . . . . . . . . . . 318
13.3.3 The LockFreeHashSet<T> class . . . . . . . . . . . . . . . . . . . 319
13.4 An open-address hash set . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
13.4.1 Cuckoo hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
13.4.2 Concurrent cuckoo hashing . . . . . . . . . . . . . . . . . . . . . 324
13.4.3 Striped concurrent cuckoo hashing . . . . . . . . . . . . . . . 329
13.4.4 A refinable concurrent cuckoo hash set . . . . . . . . . . . . 331
13.5 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
13.6 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
CHAPTER 14 Skiplists and balanced search . . . . . . . . . . . . . . . . . . . 335
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
14.2 Sequential skiplists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
14.3 A lock-based concurrent skiplist . . . . . . . . . . . . . . . . . . . . . . 337
14.3.1 A bird’s-eye view . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
14.3.2 The algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
14.4 A lock-free concurrent skiplist . . . . . . . . . . . . . . . . . . . . . . . . 345
14.4.1 A bird’s-eye view . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
14.4.2 The algorithm in detail . . . . . . . . . . . . . . . . . . . . . . . . 348
14.5 Concurrent skiplists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
14.6 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
xii Contents

14.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356


CHAPTER 15 Priority queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
15.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
15.1.1 Concurrent priority queues . . . . . . . . . . . . . . . . . . . . . 359
15.2 An array-based bounded priority queue . . . . . . . . . . . . . . . . . 360
15.3 A tree-based bounded priority queue . . . . . . . . . . . . . . . . . . . 361
15.4 An unbounded heap-based priority queue . . . . . . . . . . . . . . . . 363
15.4.1 A sequential heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
15.4.2 A concurrent heap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
15.5 A skiplist-based unbounded priority queue . . . . . . . . . . . . . . . 371
15.6 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
15.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
CHAPTER 16 Scheduling and work distribution . . . . . . . . . . . . . . . . 377
16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
16.2 Analyzing parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
16.3 Realistic multiprocessor scheduling . . . . . . . . . . . . . . . . . . . . 387
16.4 Work distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
16.4.1 Work stealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
16.4.2 Yielding and multiprogramming . . . . . . . . . . . . . . . . . 390
16.5 Work-stealing deques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
16.5.1 A bounded work-stealing deque . . . . . . . . . . . . . . . . . 391
16.5.2 An unbounded work-stealing deque . . . . . . . . . . . . . . . 395
16.5.3 Work dealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
16.6 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
16.7 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
CHAPTER 17 Data parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
17.1 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
17.1.1 The MapReduce framework . . . . . . . . . . . . . . . . . . . . . . 408
17.1.2 A MapReduce-based WordCount application . . . . . . . . . . 410
17.1.3 A MapReduce-based KMeans application . . . . . . . . . . . . . 411
17.1.4 The MapReduce implementation . . . . . . . . . . . . . . . . . . 411
17.2 Stream computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
17.2.1 A stream-based WordCount application . . . . . . . . . . . . . 416
17.2.2 A stream-based KMeans application . . . . . . . . . . . . . . . 417
17.2.3 Making aggregate operations parallel . . . . . . . . . . . . . 419
17.3 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
17.4 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
CHAPTER 18 Barriers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
18.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
18.2 Barrier implementations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
18.3 Sense reversing barrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
18.4 Combining tree barrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Contents xiii

18.5 Static tree barrier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436


18.6 Termination detection barriers . . . . . . . . . . . . . . . . . . . . . . . . 438
18.7 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
18.8 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
CHAPTER 19 Optimism and manual memory management . . . . . . 451
19.1 Transitioning from Java to C++ . . . . . . . . . . . . . . . . . . . . . . . 451
19.2 Optimism and explicit reclamation . . . . . . . . . . . . . . . . . . . . . 451
19.3 Protecting pending operations . . . . . . . . . . . . . . . . . . . . . . . . 454
19.4 An object for managing memory . . . . . . . . . . . . . . . . . . . . . . 455
19.5 Traversing a list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
19.6 Hazard pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
19.7 Epoch-based reclamation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
19.8 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
19.9 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
CHAPTER 20 Transactional programming . . . . . . . . . . . . . . . . . . . . . 467
20.1 Challenges in concurrent programming . . . . . . . . . . . . . . . . . 467
20.1.1 Problems with locking . . . . . . . . . . . . . . . . . . . . . . . . . 467
20.1.2 Problems with explicit speculation . . . . . . . . . . . . . . . 468
20.1.3 Problems with nonblocking algorithms . . . . . . . . . . . . 470
20.1.4 Problems with compositionality . . . . . . . . . . . . . . . . . 471
20.1.5 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
20.2 Transactional programming . . . . . . . . . . . . . . . . . . . . . . . . . . 472
20.2.1 An example of transactional programming . . . . . . . . . . 473
20.3 Hardware support for transactional programming . . . . . . . . . . 475
20.3.1 Hardware speculation . . . . . . . . . . . . . . . . . . . . . . . . . 475
20.3.2 Basic cache coherence . . . . . . . . . . . . . . . . . . . . . . . . . 475
20.3.3 Transactional cache coherence . . . . . . . . . . . . . . . . . . . 476
20.3.4 Limitations of hardware support . . . . . . . . . . . . . . . . . 477
20.4 Transactional lock elision . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
20.4.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480
20.5 Transactional memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
20.5.1 Run-time scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . 482
20.5.2 Explicit self-abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
20.6 Software transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
20.6.1 Transactions with ownership records . . . . . . . . . . . . . . 485
20.6.2 Transactions with value-based validation . . . . . . . . . . . 490
20.7 Combining hardware and software transactions . . . . . . . . . . . 492
20.8 Transactional data structure design . . . . . . . . . . . . . . . . . . . . . 493
20.9 Chapter notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
20.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
APPENDIX A Software basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
A.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
A.2 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
xiv Contents

A.2.1 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497


A.2.2 Monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
A.2.3 Yielding and sleeping . . . . . . . . . . . . . . . . . . . . . . . . . 501
A.2.4 Thread-local objects . . . . . . . . . . . . . . . . . . . . . . . . . . 502
A.2.5 Randomization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
A.3 The Java memory model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
A.3.1 Locks and synchronized blocks . . . . . . . . . . . . . . . . . . 505
A.3.2 Volatile fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
A.3.3 Final fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
A.4 C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
A.4.1 Threads in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
A.4.2 Locks in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
A.4.3 Condition variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
A.4.4 Atomic variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
A.4.5 Thread-local storage . . . . . . . . . . . . . . . . . . . . . . . . . . 513
A.5 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
A.5.1 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
A.5.2 Monitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
A.5.3 Thread-local objects . . . . . . . . . . . . . . . . . . . . . . . . . . 517
A.6 Appendix notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
APPENDIX B Hardware basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
B.1 Introduction (and a puzzle) . . . . . . . . . . . . . . . . . . . . . . . . . . 519
B.2 Processors and threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
B.3 Interconnect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
B.4 Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
B.5 Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
B.5.1 Coherence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524
B.5.2 Spinning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
B.6 Cache-conscious programming, or the puzzle solved . . . . . . . 526
B.7 Multicore and multithreaded architectures . . . . . . . . . . . . . . . 527
B.7.1 Relaxed memory consistency . . . . . . . . . . . . . . . . . . . 528
B.8 Hardware synchronization instructions . . . . . . . . . . . . . . . . . . 529
B.9 Appendix notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530
B.10 Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531

Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541
Preface

In the decade since the first edition, this book has become a staple of undergraduate
and graduate courses at universities around the world. It has also found a home on
the bookshelves of practitioners at companies large and small. The audience for the
book has, in turn, advanced the state of the art in multiprocessor programming. In
this second edition, we aim to continue this “virtuous cycle” by providing new and
updated content. Our goal is the same as with the first edition: to provide a textbook
for a senior-level undergraduate course and a reference for practitioners.

Organization
The first part of this book covers the principles of concurrent programming, show-
ing how to think as a concurrent programmer, developing fundamental skills such
as understanding when operations “happen,” considering all possible interleavings,
and identifying impediments to progress. Like many skills—driving a car, cooking
a meal, or appreciating caviar—thinking concurrently must be cultivated, and it can
be learned with moderate effort. Readers who want to start programming right away
may skip most of this section but should still read Chapters 2 and 3, which cover the
basic ideas necessary to understand the rest of the book.
We first look at the classic mutual exclusion problem (Chapter 2). This chapter
is essential for understanding why concurrent programming is a challenge. It covers
basic concepts such as fairness and deadlock. We then ask what it means for a con-
current program to be correct (Chapter 3). We consider several alternative conditions
and the circumstances under which one might want to use each one. We examine
the properties of shared memory essential to concurrent computation (Chapter 4),
and we look at the kinds of synchronization primitives needed to implement highly
concurrent data structures (Chapters 5 and 6).
We think it is essential that anyone who wants to become truly skilled in the art
of multiprocessor programming spend time solving the problems presented in the
first part of this book. Although these problems are idealized, they distill the kind
of thinking necessary to write effective multiprocessor programs. Most importantly,
they distill the style of thinking necessary to avoid the common mistakes committed
by nearly all novice programmers when they first encounter concurrency.
The second part of the book describes the practice of concurrent programming.
For most of this part, we give examples in Java to avoid getting mired in low-level
details. However, we have expanded this edition to include discussion of some low-
level issues that are essential to understanding multiprocessor systems and how to
program them effectively. We use examples in C++ to illustrate these issues.

xv
Random documents with unrelated
content Scribd suggests to you:
joignant à l'oranger de la tubéreuse et de la rose qu'il lia par une
goutte de vanille.
Les incertitudes se dissipèrent; une petite fièvre l'agita, il fut prêt au
travail; il composa encore du thé en mélangeant de la cassie et de
l'iris, puis, sûr de lui, il se détermina à marcher de l'avant, à plaquer
une phrase fulminante dont le hautain fracas effondrerait le
chuchotement de cette astucieuse frangipane qui se faufilait encore
dans sa pièce.
Il mania l'ambre, le musc-tonkin, aux éclats terribles, le patchouli, le
plus âcre des parfums végétaux et dont le fleur, à l'état brut, dégage
un remugle de moisi et de rouille. Quoi qu'il fît, la hantise du XVIIIe
siècle l'obséda; les robes à paniers, les falbalas tournèrent devant
ses yeux; des souvenirs des «Vénus» de Boucher, tout en chair, sans
os, bourrées de coton rose, s'installèrent sur ses murs; des rappels
du roman de Thémidore, de l'exquise Rosette retroussée dans un
désespoir couleur feu, le poursuivirent. Furieux, il se leva et, afin de
se libérer, il renifla, de toutes ses forces, cette pure essence de
spika-nard, si chère aux Orientaux et si désagréable aux Européens,
à cause de son relent trop prononcé de valériane. Il demeura étourdi
sous la violence de ce choc. Comme pilées par un coup de marteau,
les filigranes de la délicate odeur disparurent; il profita de ce temps
de répit pour échapper aux siècles défunts, aux vapeurs surannées,
pour entrer, ainsi qu'il le faisait jadis, dans des œuvres moins
restreintes ou plus neuves.
Il avait autrefois aimé à se bercer d'accords en parfumerie; il usait
d'effets analogues à ceux des poètes, employait, en quelque sorte,
l'admirable ordonnance de certaines pièces de Baudelaire, telles que
«l'Irréparable» et «le Balcon», où le dernier des cinq vers qui
composent la strophe est l'écho du premier et revient, ainsi qu'un
refrain, noyer l'âme dans des infinis de mélancolie et de langueur.
Il s'égarait dans les songes qu'évoquaient pour lui ces stances
aromatiques, ramené soudain à son point de départ, au motif de sa
méditation, par le retour du thème initial, reparaissant, à des
intervalles ménagés, dans l'odorante orchestration du poème.
Actuellement, il voulut vagabonder
dans un surprenant et variable
paysage, et il débuta par une phrase,
sonore, ample, ouvrant tout d'un coup
une échappée de campagne immense.
Avec ses vaporisateurs, il injecta dans
la pièce une essence formée
d'ambroisie, de lavande de Mitcham,
de pois de senteur, de bouquet, une
essence qui, lorsqu'elle est distillée par
un artiste, mérite le nom qu'on lui
décerne, «d'extrait de pré fleuri»; puis
dans ce pré, il introduisit une précise
fusion de tubéreuse, de fleur d'oranger
et d'amande, et aussitôt d'artificiels lilas naquirent, tandis que des
tilleuls s'éventèrent, rabattant sur le sol leurs pâles émanations que
simulait l'extrait du tilia de Londres.
Ce décor posé en quelques grandes lignes, fuyant à perte de vue
sous ses yeux fermés, il insuffla une légère pluie d'essences
humaines et quasi félines, sentant la jupe, annonçant la femme
poudrée et fardée, le stéphanotis, l'ayapana, l'opopanax, le chypre,
le champaka, le sarcanthus, sur lesquels il juxtaposa un soupçon de
seringa, afin de donner dans la vie factice du maquillage qu'ils
dégageaient, un fleur naturel de rires en sueur, de joies qui se
démènent au plein soleil.
Ensuite il laissa, par un ventilateur, s'échapper ces ondes odorantes,
conservant seulement la campagne qu'il renouvela et dont il força la
dose pour l'obliger à revenir ainsi qu'une ritournelle dans ses
strophes.
Les femmes s'étaient peu à peu évanouies; la campagne était
devenue déserte; alors, sur l'horizon enchanté, des usines se
dressèrent, dont les formidables cheminées brûlaient, à leurs
sommets, comme des bols de punch.
Un souffle de fabriques, de produits chimiques, passait maintenant
dans la brise qu'il soulevait avec des éventails, et la nature exhalait
encore, dans cette purulence de l'air, ses doux effluves.
Des Esseintes maniait, échauffait entre ses doigts, une boulette de
styrax, et une très bizarre odeur montait dans la pièce, une odeur
tout à la fois répugnante et exquise, tenant de la délicieuse senteur
de la jonquille et de l'immonde puanteur de la gutta-percha et de
l'huile de houille. Il se désinfecta les mains, inséra en une boîte
hermétiquement close sa résine, et les fabriques disparurent à leur
tour. Alors, il darda parmi les vapeurs ravivées des tilleuls et des prés
quelques gouttes de new mown hay et, au milieu du site magique
momentanément dépouillé de ses lilas, des gerbes de foin
s'élevèrent, amenant une saison nouvelle, épandant leur fine
effluence dans l'été de ces senteurs.
Enfin, quand il eut assez savouré ce spectacle, il dispersa
précipitamment des parfums exotiques, épuisa ses vaporisateurs,
accéléra ses esprits concentrés, lâcha bride à tous ses baumes, et,
dans la touffeur exaspérée de la pièce, éclata une nature démente et
sublimée, forçant ses haleines, chargeant d'alcoolats en délire une
artificielle brise, une nature pas vraie et charmante, toute
paradoxale, réunissant les piments des tropiques, les souffles poivrés
du santal de la Chine et de l'hediosmia de la Jamaïque, aux odeurs
françaises du jasmin, de l'aubépine et de la verveine, poussant, en
dépit des saisons et des climats, des arbres d'essences diverses, des
fleurs aux couleurs et aux fragrances les plus opposées, créant par
la fonte et le heurt de tous ces tons, un parfum général, innommé,
imprévu, étrange, dans lequel reparaissait, comme un obstiné
refrain, la phrase décorative du commencement, l'odeur du grand
pré, éventé par les lilas et les tilleuls.
Tout à coup une douleur aiguë le perça; il lui sembla qu'un
vilebrequin lui forait les tempes. Il ouvrit les yeux, se retrouva au
milieu de son cabinet de toilette, assis devant sa table; péniblement,
il marcha, abasourdi, vers la croisée qu'il entrebâilla. Une bouffée
d'air rasséréna l'étouffante atmosphère qui l'enveloppait; il se
promena, de long en large, pour raffermir ses jambes, alla et vint,
regardant le plafond où des crabes et des algues poudrées de sel,
s'enlevaient en relief sur un fond grenu aussi blond que le sable
d'une plage; un décor pareil revêtait les plinthes, bordant les
cloisons tapissées de crêpe Japonais vert d'eau, un peu chiffonné,
simulant le friselis d'une rivière que le vent ride et, dans ce léger
courant, nageait le pétale d'une rose autour duquel tournoyait une
nuée de petits poissons dessinés en deux traits d'encre.
Mais ses paupières demeuraient lourdes; il cessa d'arpenter le court
espace compris entre le baptistère et la baignoire, et il s'appuya sur
la rampe de la fenêtre; son étourdissement cessa; il reboucha
soigneusement les fioles, et il mit à profit cette occasion pour
remédier au désordre de ses maquillages. Il n'y avait point touché
depuis son arrivée à Fontenay, et il s'étonna presque, maintenant,
de revoir cette collection naguère visitée par tant de femmes. Les
uns sur les autres, des flacons et des pots s'entassaient. Ici, une
boîte en porcelaine, de la famille verte, contenait le schnouda, cette
merveilleuse crème blanche qui, une fois étendue sur les joues,
passe, sous l'influence de l'air, au rose tendre, puis à un incarnat si
réel qu'il procure l'illusion vraiment exacte d'une peau colorée de
sang; là, des laques, incrustés de burgau, renfermaient de l'or
Japonais et du vert d'Athènes, couleur d'aile de cantharide, des ors
et des verts qui se transmuent en une pourpre profonde dès qu'on
les mouille; près de pots pleins de pâte d'aveline, de serkis du
harem, d'émulsines au lys de kachemyr, de lotion d'eau de fraise et
de sureau pour le teint, et près de petites bouteilles remplies de
solutions d'encre de Chine et d'eau de rose à l'usage des yeux, des
instruments en ivoire, en nacre, en acier, en argent, s'étalaient
éparpillés avec des brosses en luzerne pour les gencives: des pinces,
des ciseaux, des strigiles, des estompes, des crêpons et des
houppes, des gratte-dos, des mouches et des limes.
Il manipulait tout cet attirail, autrefois acheté sur les instances d'une
maîtresse qui se pâmait sous l'influence de certains aromates et de
certains baumes, une femme, détraquée et nerveuse, aimant à faire
macérer la pointe de ses seins dans les senteurs, mais n'éprouvant, en
somme, une délicieuse et accablante extase, que lorsqu'on lui ratissait
la tête avec un peigne ou qu'elle pouvait humer, au milieu des
caresses, l'odeur de la suie, du plâtre des maisons en construction,
par les temps de pluie, ou de la poussière mouchetée par de grosses
gouttes d'orage, pendant l'été.
Il rumina ces souvenirs, et une après-midi écoulée, à Pantin, par
désœuvrement, par curiosité, en compagnie de cette femme, chez
l'une de ses sœurs, lui revint, remuant en lui un monde oublié de
vieilles idées et d'anciens parfums; tandis que les deux femmes
jacassaient et se montraient leurs robes, il s'était approché de la
fenêtre et, au travers des vitres poudreuses, il avait vu la rue pleine
de boue s'étendre et entendu ses pavés bruire sous le coup répété
des galoches battant les mares.
Cette scène déjà lointaine se présenta subitement, avec une vivacité
singulière. Pantin était là, devant lui, animé, vivant, dans cette eau
verte et comme morte de la glace margée de lune où ses yeux
inconscients plongeaient; une hallucination l'emporta loin de
Fontenay; le miroir lui répercuta en même temps que la rue les
réflexions qu'elle avait autrefois fait naître et, abîmé dans un songe, il
se répéta cette ingénieuse, mélancolique et consolante antienne qu'il
avait jadis notée dès son retour dans Paris:
—Oui, le temps des grandes pluies est venu; voilà que les gargouilles
dégobillent, en chantant sous les trottoirs, et que les fumiers marinent
dans des flaques qui emplissent de leur café au lait les bols creusés
dans le macadam; partout, pour l'humble passant, les rince-pieds
fonctionnent.
Sous le ciel bas, dans l'air mou, les murs des maisons ont des sueurs
noires et leurs soupiraux fétident; la dégoûtation de l'existence
s'accentue et le spleen écrase; les semailles d'ordures que chacun a
dans l'âme éclosent; des besoins de sales ribotes agitent les gens
austères et, dans le cerveau des gens considérés, des désirs de
forçats vont naître.
Et pourtant je me chauffe devant un grand feu, et d'une corbeille de
fleurs épanouies sur la table se dégage une exhalaison de benjoin, de
géranium et de vétyver qui remplit la chambre. En plein mois de
novembre, à Pantin, rue de Paris, le printemps persiste et voici que je
ris, à part moi, des familles craintives qui, afin d'éviter les approches
du froid, fuient à toute vapeur vers Antibes ou vers Cannes.
L'inclémente nature n'est pour rien dans cet extraordinaire
phénomène; c'est à l'industrie seule, il faut bien le dire, que Pantin est
redevable de cette saison factice.
En effet, ces fleurs sont en taffetas, montée sur du fil d'archal, et la
senteur printanière filtre par les joints de la fenêtre, exhalée des
usines du voisinage, des parfumeries de Pinaud et de Saint-James.
Pour les artisans usés par les durs labeurs des ateliers, pour les petits
employés trop souvent pères, l'illusion d'un peu de bon air est, grâce
à ces commerçants, possible.
Puis de ce fabuleux subterfuge d'une campagne, une médication
intelligente peut sortir; les viveurs poitrinaires qu'on exporte dans le
Midi, meurent, achevés par la rupture de leurs habitudes, par la
nostalgie des excès parisiens qui les ont vaincus. Ici, sous un faux
climat, aidé par des bouches de poêles, les souvenirs libertins
renaîtront, très doux, avec les languissantes émanations féminines
évaporées par les fabriques. Au mortel ennui de la vie provinciale, le
médecin peut, par cette supercherie, substituer platoniquement, pour
son malade, l'atmosphère des boudoirs de Paris, des filles. Le plus
souvent, il suffira, pour consommer la cure, que le sujet ait
l'imagination un peu fertile.

Puisque, par le temps qui court, il n'existe plus de substance saine,


puisque le vin qu'on boit et que la liberté qu'on proclame, sont frelatés
et dérisoires, puisqu'il faut enfin une singulière dose de bonne volonté
pour croire que les classes dirigeantes sont respectables et que les
classes domestiquées sont dignes d'être soulagées ou plaintes, il ne
me semble, conclut des Esseintes, ni plus ridicule ni plus fou de
demander à mon prochain une somme d'illusion à peine équivalente à
celle qu'il dépense dans des buts imbéciles chaque jour, pour se
figurer que la ville de Pantin est une Nice artificielle, une Menton
factice.

Tout cela n'empêche pas, fit-il, arraché à ses réflexions par une
défaillance de tout son corps, qu'il va falloir me défier de ces délicieux
et abominables exercices qui m'écrasent. Il soupira:—Allons, encore
des plaisirs à modérer, des précautions à prendre; et il se réfugia dans
son cabinet de travail, pensant échapper plus facilement ainsi à la
hantise de ces parfums.
Il ouvrit la croisée toute large, heureux de prendre un bain d'air; mais,
soudain, il lui parut que la brise soufflait un vague montant d'essence
de bergamote avec laquelle se coalisait de l'esprit de jasmin, de cassie
et de l'eau de rose. Il haleta, se demandant s'il n'était point
décidément sous le joug d'une de ces possessions qu'on exorcisait au
moyen âge. L'odeur changea et se transforma, tout en persistant. Une
indécise senteur de teinture de tolu, de baume du Pérou, de safran,
soudés par quelques gouttes d'ambre et de musc, s'élevait maintenant
du village couché au bas de la côte, et, subitement, la métamorphose
s'opéra, ces bribes éparses se relièrent et, à nouveau, la frangipane,
dont son odorat avait perçu les éléments et préparé l'analyse, fusa de
la vallée de Fontenay jusqu'au fort, assaillant ses narines excédées,
ébranlant encore ses nerfs rompus, le jetant dans une telle
prostration, qu'il s'affaissa évanoui, presque mourant, sur la barre
d'appui de la fenêtre.
XI

L es domestiques effrayés s'empressèrent d'aller chercher le


médecin de Fontenay qui ne comprit absolument rien à l'état de
des Esseintes. Il bafouilla quelques termes médicaux, tâta le pouls,
examina la langue du malade, tenta mais en vain de le faire parler,
ordonna des calmants et du repos, promit de revenir le lendemain, et,
sur un signe négatif de des Esseintes qui retrouva assez de force pour
improuver le zèle de ses domestiques et congédier cet intrus, il partit
et s'en fut raconter, par tout le village, les excentricités de cette
maison dont l'ameublement l'avait positivement frappé de stupeur et
gelé sur place.
Au grand étonnement des serviteurs qui n'osaient plus bouger de
l'office, leur maître se rétablit en quelques jours et ils le surprirent,
tambourinant sur les vitres, regardant, d'un air inquiet, le ciel.
Une après-midi, les timbres sonnèrent des appels brefs, et des
Esseintes prescrivit qu'on lui apprêtât ses malles, pour un long
voyage.
Tandis que l'homme et la femme choisissaient, sur ses indications, les
objets utiles à emporter, il arpentait fiévreusement la cabine de la salle
à manger, consultait les heures des paquebots, parcourait son cabinet
de travail où il continuait à scruter les nuages, d'un air tout à la fois
impatient et satisfait.
Le temps était, depuis une semaine déjà, atroce. Des fleuves de suie
roulaient, sans discontinuer, au travers des plaines grises du ciel, des
blocs de nuées pareils à des rocs déracinés d'un sol.
Par instants, des ondées crevaient et engloutissaient la vallée sous des
torrents de pluie.
Ce jour-là, le firmament avait changé d'aspect. Les flots d'encre
s'étaient volatilisés et taris, les aspérités des nuages s'étaient fondues;
le ciel était uniformément plat, couvert d'une taie saumâtre. Peu à
peu, cette taie parut descendre, une brume d'eau enveloppa la
campagne; la pluie ne croula plus, par cataractes, ainsi que la veille,
mais elle tomba, sans relâche, fine, pénétrante, aiguë, délayant les
allées, gâchant les routes, joignant avec ses fils innombrables la terre
au ciel; la lumière se brouilla; un jour livide éclaira le village
maintenant transformé en un lac de boue pointillé par les aiguilles de
l'eau qui piquaient de gouttes de vif-argent le liquide fangeux des
flaques; dans la désolation de la nature, toutes les couleurs se
fanèrent, laissant seuls les toits luire sur les tons éteints des murs.
Quel temps! soupira le vieux domestique, en déposant sur une chaise
les vêtements que réclamait son maître, un complet jadis commandé
à Londres.
Pour toute réponse des Esseintes se frotta
les mains, et s'installa devant une
bibliothèque vitrée où un jeu de
chaussettes de soie était disposé en
éventail; il hésitait sur la nuance, puis,
rapidement, considérant la tristesse du jour,
le camaïeu morose de ses habits, songeant
au but à atteindre, il choisit une paire de
soie feuille-morte, les enfila rapidement, se
chaussa de brodequins à agrafes et à bouts
découpés, revêtit le complet gris-souris,
quadrillé de gris-lave et pointillé de martre,
se coiffa d'un petit melon, s'enveloppa d'un
mac-farlane bleu-lin et, suivi du domestique
qui pliait sous le poids d'une malle, d'une
valise à soufflets, d'un sac de nuit, d'un carton à chapeau, d'une
couverture de voyage renfermant des parapluies et des cannes, il
gagna la gare. Là, il déclara au domestique qu'il ne pouvait fixer la
date de son retour, qu'il reviendrait dans un an, dans un mois, dans
une semaine, plus tôt peut-être, ordonna que rien ne fût changé de
place au logis, remit l'approximative somme nécessaire à l'entretien du
ménage pendant son absence, et il monta en wagon, laissant le
vieillard ahuri, bras ballants et bouche béante, derrière la barrière où
s'ébranlait le train.
Il était seul dans son compartiment; une campagne, indécise, sale,
vue telle qu'au travers d'un aquarium d'eau trouble, fuyait à toute
volée derrière le convoi que cinglait la pluie. Plongé dans ses
réflexions, des Esseintes ferma les yeux.
Une fois de plus, cette solitude si ardemment enviée et enfin acquise,
avait abouti à une détresse affreuse; ce silence qui lui était autrefois
apparu comme une compensation des sottises écoutées pendant des
ans, lui pesait maintenant d'un poids insoutenable. Un matin, il s'était
réveillé, agité ainsi qu'un prisonnier mis en cellule; ses lèvres énervées
remuaient pour articuler des sons, des larmes lui montaient aux yeux,
il étouffait de même qu'un homme qui aurait sangloté pendant des
heures.
Dévoré du désir de marcher, de regarder une figure humaine, de
parler avec un autre être, de se mêler à la vie commune, il en vint à
retenir ses domestiques, appelés sous un prétexte; mais la
conversation était impossible; outre que ces vieilles gens, ployés par
des années de silence et des habitudes de gardes-malades, étaient
presque muets, la distance à laquelle les avait toujours tenus des
Esseintes n'était point faite pour les engager à desserrer les dents.
D'ailleurs, ils possédaient des cerveaux inertes et étaient incapables
de répondre autrement que par des monosyllabes aux questions qu'on
leur posait.
Il ne put donc se procurer aucune ressource, aucun soulagement près
d'eux; mais un nouveau phénomène se produisit. La lecture de
Dickens qu'il avait naguère consommée pour s'apaiser les nerfs et qui
n'avait produit que des effets contraires aux effets hygiéniques qu'il
espérait, commença lentement à agir dans un sens inattendu,
déterminant des visions de l'existence anglaise qu'il ruminait pendant
des heures; peu à peu, dans ces contemplations fictives, s'insinuèrent
des idées de réalité précise, de voyage accompli, de rêves vérifiés sur
lesquels se greffa l'envie d'éprouver des impressions neuves et
d'échapper ainsi aux épuisantes débauches de l'esprit s'étourdissant à
moudre à vide.
Cet abominable temps de brouillard et de pluie aidait encore à ces
pensées, en appuyant les souvenirs de ses lectures, en lui mettant la
constante image sous les yeux d'un pays de brume et de boue, en
empêchant ses désirs de dévier de leur point de départ, de s'écarter
de leur source.
Il n'y tint plus, et brusquement il s'était décidé, un jour. Sa hâte fut
telle qu'il prit la fuite bien avant l'heure, voulant se dérober au
présent, se sentir bousculé dans un brouhaha de rue, dans un
vacarme de foule et de gare.
Je respire, se disait-il, au moment où le convoi ralentissait sa valse et
s'arrêtait dans la rotonde du débarcadère de Sceaux, en rhythmant
ses dernières pirouettes par le fracas saccadé des plaques tournantes.
Une fois au boulevard d'Enfer, dans la rue, il héla un cocher, jouissant
à être ainsi empêtré avec ses malles et ses couvertures. Moyennant la
promesse d'un copieux pourboire, il s'entendit avec l'homme au
pantalon noisette et au gilet rouge:—A l'heure, fit-il, et, rue de Rivoli,
vous vous arrêterez devant le Galignani's Messenger; car il songeait à
acheter, avant son départ, un guide Baedeker ou Murray, de Londres.
La voiture s'ébranla lourdement, soulevant autour de ses roues des
cerceaux de crotte; on naviguait en plein marécage; sous le ciel gris
qui semblait s'appuyer sur le toit des maisons, les murailles
ruisselaient du haut en bas, les gouttières débordaient, les pavés
étaient enduits d'une boue de pain d'épice dans laquelle les passants
glissaient; sur les trottoirs que râflaient les omnibus, des gens tassés
s'arrêtaient, des femmes retroussées jusqu'aux genoux, courbées sous
des parapluies, s'aplatissaient pour éviter des éclaboussures, contre
les boutiques.
Aug. Leroux pinx. E. Decisy sc.
F. FERROUD, ÉDITEUR
Imp. Vernant et Dollé

La pluie entrait en diagonale par les portières; des Esseintes dut


relever les glaces que l'eau raya de ses cannelures tandis que des
gouttes de fange rayonnaient comme un feu d'artifice de tous les
côtés du fiacre. Au bruit monotone des sacs de pois secoués sur sa
tête par l'ondée dégoulinant sur les malles et sur le couvercle de la
voiture, des Esseintes rêvait à son voyage; c'était déjà un acompte de
l'Angleterre qu'il prenait à Paris par cet affreux temps; un Londres
pluvieux, colossal, immense, puant la fonte échauffée et la suie,
fumant sans relâche dans la brume se déroulait maintenant devant
ses yeux; puis des enfilades de docks s'étendaient à perte de vue,
pleins de grues, de cabestans, de ballots, grouillant d'hommes
perchés sur des mâts, à califourchon sur des vergues, alors que, sur
les quais, des myriades d'autres hommes étaient penchés, le derrière
en l'air, sur des barriques qu'ils poussaient dans des caves.
Tout cela s'agitait sur des rives, dans des entrepôts gigantesques,
baignés par l'eau teigneuse et sourde d'une imaginaire Tamise, dans
une futaie de mâts, dans une forêt de poutres crevant les nuées
blafardes du firmament, pendant que des trains filaient, à toute
vapeur, dans le ciel, que d'autres roulaient dans les égouts, éructant
des cris affreux, vomissant des flots de fumée par des bouches de
puits, que par tous les boulevards, par toutes les rues, où éclataient,
dans un éternel crépuscule, les monstrueuses et voyantes infamies de
la réclame, des flots de voitures coulaient, entre des colonnes de
gens, silencieux, affairés, les yeux en avant, les coudes au corps.
Des Esseintes frissonnait délicieusement à se sentir confondu dans ce
terrible monde de négociants, dans cet isolant brouillard, dans cette
incessante activité, dans cet impitoyable engrenage broyant des
millions de déshérités que des philanthropes excitaient, en guise de
consolation, à réciter des versets et à chanter des psaumes.
Puis, la vision s'éteignit brusquement avec un cahot du fiacre qui le fit
rebondir sur la banquette. Il regarda par les portières; la nuit était
venue; les becs de gaz clignotaient, au milieu d'un halo jaunâtre, en
pleine brume; des rubans de feux nageaient dans des mares et
semblaient tourner autour des roues des voitures qui sautaient dans
de la flamme liquide et sale; il tenta de se reconnaître, aperçut le
Carrousel et, subitement, sans motif, peut-être par le simple contre-
coup de la chute qu'il faisait du haut d'espaces feints, sa pensée
rétrograda jusqu'au souvenir d'un incident trivial: il se rappela que le
domestique avait négligé de mettre, tandis qu'il le regardait préparer
ses malles, une brosse à dents parmi les ustensiles de son nécessaire
de toilette; alors il passa en revue la liste des objets empaquetés; tous
avaient été rangés dans sa valise, mais la contrariété d'avoir omis
cette brosse persista jusqu'à ce que le cocher, en s'arrêtant, rompît la
chaîne de ces réminiscences et de ces regrets.
Il était dans la rue de Rivoli, devant le Galignani's Messenger.
Séparées par une porte aux verres dépolis couverts d'inscriptions et
munis de passe-partout encadrant des découpures de journaux et des
bandes azurées de télégrammes, deux grandes vitrines regorgeaient
d'albums et de livres. Il s'approcha, attiré par la vue de ces
cartonnages en papier bleu-perruquier et vert-chou gaufrés, sur
toutes les coutures, de ramages d'argent et d'or, de ces couvertures
en toiles couleur carmélite, poireau, caca d'oie, groseille, estampées
au fer froid, sur les plats et le dos, de filets noirs. Tout cela avait une
touche antiparisienne, une tournure mercantile, plus brutale et
pourtant moins vile que celles des reliures de camelote, en France; çà
et là, au milieu d'albums ouverts, reproduisant des scènes
humoristiques de du Maurier et de John Leech, ou lançant au travers
de plaines en chromo les délirantes cavalcades de Caldecott, quelques
romans français apparaissaient, mêlant à ces verjus de teintes, des
vulgarités bénignes et satisfaites.
Il finit par s'arracher à cette contemplation, poussa la porte, pénétra
dans une vaste bibliothèque, pleine de monde; des étrangères assises
dépliaient des cartes et baragouinaient, en des langues inconnues,
des remarques. Un commis lui apporta toute une collection de guides.
A son tour, il s'assit, retournant ces livres dont les flexibles
cartonnages pliaient entre ses doigts. Il les parcourut, s'arrêta sur une
page du Baedeker, décrivant les musées de Londres. Il s'intéressait
aux détails laconiques et précis du guide; mais son attention dévia de
l'ancienne peinture anglaise sur la nouvelle qui le sollicitait davantage.
Il se rappelait certains spécimens qu'il avait vus, dans les expositions
internationales, et il songeait qu'il les reverrait peut-être à Londres:
des tableaux de Millais, la «Veillée de sainte Agnès» d'un vert argenté
si lunaire, des tableaux de Watts, aux couleurs étranges, bariolés de
gomme-gutte et d'indigo, des tableaux esquissés par un Gustave
Moreau malade, brossés par un Michel-Ange anémié et retouchés par
un Raphaël noyé dans le bleu; entre autres toiles, il se rappelait une
«Dénonciation de Caïn», une «Ida» et des «Èves», où, dans le
singulier et mystérieux amalgame de ces trois maîtres, sourdait la
personnalité tout à la fois quintessenciée et brute d'un Anglais docte
et rêveur, tourmenté par des hantises de tons atroces.
Toutes ces toiles assaillaient en foule sa mémoire. Le commis, étonné
par ce client qui s'oubliait devant une table, lui demanda sur lequel de
ces guides il fixait son choix. Des Esseintes demeura ébaubi, puis il
s'excusa, fit l'emplette d'un Baedeker et franchit la porte. L'humidité le
glaça; le vent soufflait de côté, cinglait les arcades de ses fouets de
pluie.—Allez là, fit-il, au cocher, en désignant du doigt au bout d'une
galerie, un magasin qui formait l'angle de la rue de Rivoli et de la rue
Castiglione et ressemblait avec ses carreaux blanchâtres, éclairés en
dedans, à une gigantesque veilleuse, brûlant dans le malaise de ce
brouillard, dans la misère de ce temps malade.
C'était la «Bodéga». Des Esseintes s'égara dans une grande salle qui
s'allongeait, en couloir, soutenue par des piliers de fonte, bardée, de
chaque côté de ses murs, de hautes futailles posées tout debout sur
des chantiers.
Cerclées de fer, la panse garnie de créneaux de bois simulant un
ratelier de pipes dans les crans duquel pendaient des verres en forme
de tulipes, le pied en l'air, le bas-ventre troué et emmanché d'une
cannelle de grès, ces barriques armoriées d'un blason royal étalaient
sur des étiquettes en couleur le nom de leur cru, la contenance de
leurs flancs, le prix de leur vin, acheté à la pièce, à la bouteille, ou
dégusté au verre.
Dans l'allée restée libre entre ces rangées de tonneaux, sous les
flammes du gaz qui bourdonnait aux becs d'un affreux lustre peint en
gris-fer, des tables couvertes de corbeilles de biscuits Palmers, de
gâteaux salés et secs, d'assiettes où s'entassaient des mince-pie et
des sandwichs cachant sous leurs fades enveloppes d'ardents
sinapismes à la moutarde, se succédaient entre une haie de chaises,
jusqu'au fond de cette cave encore bardée de nouveaux muids portant
sur leur tête de petits barils, couchés sur le flanc, estampillés de titres
gravés au fer chaud, dans le chêne.
Un fumet d'alcool saisit des Esseintes lorsqu'il prit place dans cette
salle où sommeillaient de puissants vins. Il regarda autour de lui: ici,
les foudres s'alignaient, détaillant toute la série des porto, des vins
âpres ou fruiteux, couleur d'acajou ou d'amarante, distingués par de
laudatives épithètes: «old port, light delicate, cockburn's very fine,
magnificent old Regina»; là, bombant leurs formidables abdomens, se
pressaient, côte à côte, des fûts énormes renfermant le vin martial de
l'Espagne, le xérès et ses dérivés, couleur de topaze brûlée ou crue, le
sanlucar, le pasto, le pale dry, l'oloroso, l'amontilla, sucrés ou secs.
La cave était pleine; accoudé sur un coin de table, des Esseintes
attendait le verre de porto commandé à un gentleman, en train de
déboucher d'explosifs sodas contenus dans des bouteilles ovales qui
rappelaient, en les exagérant, ces capsules de gélatine et de gluten
employées par les pharmacies pour masquer le goût de certains
remèdes.
Tout autour de lui, des Anglais foisonnaient: des dégaines de pâles
clergymen, vêtus de noir de la tête aux pieds, avec des chapeaux
mous, des souliers lacés, des redingotes interminables constellées sur
la poitrine de petits boutons, des mentons ras, des lunettes rondes,
des cheveux graisseux et plats; des trognes de tripiers et des mufles
de dogues avec des cous apoplectiques, des oreilles comme des
tomates, des joues vineuses, des yeux injectés et idiots, des colliers
de barbe pareils à ceux de quelques grands singes; plus loin, au bout
du chai, un long dépendeur d'andouilles aux cheveux d'étoupe, au
menton garni de poils blancs ainsi qu'un fond d'artichaut, déchiffrait,
au travers d'un microscope, les minuscules romains d'un journal
anglais; en face, une sorte de commodore américain, boulot et trapu,
les chairs boucanées et le nez en bulbe, s'endormait, regardant, un
cigare planté dans le trou velu de sa bouche, des cadres pendus aux
murs renfermant des annonces de vins de Champagne, les marques
de Perrier et de Rœderer, d'Heidsieck et de Mumm, et une tête
encapuchonnée de moine, avec le nom écrit en caractères gothiques
de Dom Pérignon, à Reims.
Un certain amollissement enveloppa des Esseintes dans cette
atmosphère de corps de garde; étourdi par les bavardages des Anglais
causant entre eux, il rêvassait, évoquant devant la pourpre des porto
remplissant les verres, les créatures de Dickens qui aiment tant à les
boire, peuplant imaginairement la cave de personnages nouveaux,
voyant ici les cheveux blancs et le teint enflammé de Monsieur
Wickfield; là, la mine flegmatique et rusée et l'œil implacable de
Monsieur Tulkinghorn, le funèbre avoué de Bleak-house. Positivement,
tous se détachaient de sa mémoire, s'installaient, dans la Bodéga,
avec leurs faits et leurs gestes; ses souvenirs, ravivés par de récentes
lectures, atteignaient une précision inouïe. La ville du romancier, la
maison bien éclairée, bien chauffée, bien servie, bien close, les
bouteilles lentement versées par la petite Dorrit, par Dora Copperfield,
par la sœur de Tom Pinch, lui apparurent naviguant ainsi qu'une arche
tiède, dans un déluge de fange et de suie. Il s'acagnarda dans ce
Londres fictif, heureux d'être à l'abri, écoutant naviguer sur la Tamise
les remorqueurs qui poussaient de sinistres hurlements, derrière les
Tuileries, près du pont. Son verre était vide; malgré la vapeur éparse
dans cette cave encore échauffée par les fumigations des cigares et
des pipes, il éprouvait, en retombant dans la réalité, par ce temps
d'humidité fétide, un petit frisson.
Il demanda un verre d'amontillado, mais alors devant ce vin sec et
pâle, les lénitives histoires, les douces malvacées de l'auteur anglais
se défeuillèrent et les impitoyables révulsifs, les douloureux rubéfiants
d'Edgar Poe, surgirent; le froid cauchemar de la barrique
d'amontillado, de l'homme muré dans un souterrain, l'assaillit; les
faces bénévoles et communes des buveurs américains et anglais qui
occupaient la salle, lui parurent refléter d'involontaires et d'atroces
pensées, d'instinctifs et d'odieux desseins; puis il s'aperçut qu'il
s'esseulait, que l'heure du dîner était proche; il paya, s'arracha de sa
chaise, et gagna, tout étourdi, la porte. Il reçut un soufflet mouillé dès
qu'il mit les pieds dehors; inondés par la pluie et par les rafales, les
réverbères agitaient leurs petits éventails de flamme, sans éclairer;
encore descendu de plusieurs crans, le ciel s'était abaissé jusqu'au
ventre des maisons. Des Esseintes considéra les arcades de la rue de
Rivoli, noyées dans l'ombre et submergées par l'eau, et il lui sembla
qu'il se tenait dans le morne tunnel creusé sous la Tamise; des
tiraillements d'estomac le rappelèrent à la réalité; il rejoignit sa
voiture, jeta au cocher l'adresse de la taverne de la rue d'Amsterdam,
près de la gare, et il consulta sa montre: sept heures. Il avait juste le
temps de dîner; le train ne partait qu'à huit heures cinquante minutes,
et il comptait sur ses doigts, supputait les heures de la traversée de
Dieppe à Newhaven, se disant:—Si les chiffres de l'indicateur sont
exacts, je serai demain, sur le coup de midi et demi, à Londres.
Le fiacre s'arrêta devant la taverne; de nouveau, des Esseintes
descendit et il pénétra dans une longue salle, sans dorure, brune,
divisée par des cloisons à mi-corps, en une série de compartiments
semblables aux boxs des écuries; dans cette salle, évasée près de la
porte, d'abondantes pompes à bières se dressaient sur un comptoir,
près de jambons aussi culottés que de vieux violons, de homards
peints au minium, de maquereaux marinés, avec des ronds d'oignons
et de carottes crus, des tranches de citron, des bouquets de laurier et
de thym, des baies de genièvre et du gros poivre nageant dans une
sauce trouble.
L'un de ces boxs était vide. Il s'en empara et héla un jeune homme en
habit noir, qui s'inclina en jargonnant des mots incompréhensibles.
Pendant que l'on préparait le couvert, des Esseintes contempla ses
voisins; de même qu'à la Bodéga, des insulaires, aux yeux faïence, au
teint cramoisi, aux airs réfléchis ou rogues, parcouraient des feuilles
étrangères; seulement des femmes, sans cavaliers, dînaient, entre
elles, en tête à tête, de robustes Anglaises aux faces de garçon, aux
dents larges comme des palettes, aux joues colorées, en pomme, aux
longues mains et aux longs pieds. Elles attaquaient, avec une réelle
ardeur, un rumpsteak-pie, une viande chaude, cuite dans une sauce
aux champignons et revêtue, de même qu'un pâté, d'une croûte.
Après avoir perdu depuis si longtemps l'appétit, il demeura confondu
devant ces gaillardes dont la voracité aiguisa sa faim. Il commanda un
potage ox-tail, se régala de cette soupe à la queue de bœuf, tout à la
fois onctueuse et veloutée, grasse et ferme; puis, il examina la liste
des poissons, demanda un haddock, une sorte de merluche fumée qui
lui parut louable et, pris d'une fringale, à voir s'empiffrer les autres, il
mangea un rosbif aux pommes et s'enfourna deux pintes d'ale, excité
par ce petit goût de vacherie musquée que dégage cette fine et pâle
bière.
Sa faim se comblait; il chipota un bout de fromage bleu de Stilton
dont la douceur s'imprégnait d'amertume, picora une tarte à la
rhubarbe, et, pour varier, étancha sa soif avec le porter, cette bière
noire qui sent le jus de réglisse dépouillé de sucre.
Il respirait; depuis des années il n'avait et autant bâfré et autant bu;
ce changement d'habitude, ce choix de nourritures imprévues et
solides avait tiré l'estomac de son somme. Il s'enfonça dans sa chaise,
alluma une cigarette et s'apprêta à déguster sa tasse de café qu'il
trempa de gin.
La pluie continuait à tomber; il l'entendait crépiter sur les vitres qui
plafonnaient le fond de la pièce et dégouliner en cascades dans les
gargouilles; personne ne bougeait dans la salle; tous se dorlotaient,
ainsi que lui, au sec, devant des petits verres.
Les langues se délièrent; comme presque tous ces Anglais levaient, en
parlant, les yeux en l'air, des Esseintes conclut qu'ils s'entretenaient du
mauvais temps; aucun d'eux ne riait et tous étaient vêtus de cheviote
grise, réglée de jaune nankin et de rose de papier buvard. Il jeta un
regard ravi sur ses habits dont la couleur et la coupe ne différaient pas
sensiblement de celles des autres, et il éprouva le contentement de ne
point détonner dans ce milieu, d'être, en quelque sorte et
superficiellement, naturalisé citoyen de Londres; puis il eut un sursaut.
Et l'heure du train? se dit-il. Il consulta sa montre: huit heures moins
dix; j'ai encore près d'une demi-heure à rester là; et une fois de plus,
il songea au projet qu'il avait conçu.
Dans sa vie sédentaire, deux pays l'avaient seulement attiré, la
Hollande et l'Angleterre.
Il avait exaucé le premier de ses souhaits; n'y tenant plus, un beau
jour, il avait quitté Paris et visité les villes des Pays-Bas, une à une.
Somme toute, il était résulté de cruelles désillusions de ce voyage. Il
s'était figuré une Hollande, d'après les œuvres de Teniers et de Steen,
de Rembrandt et d'Ostade, se façonnant d'avance, à son usage,
d'incomparables juiveries aussi dorées que des cuirs de Cordoue par le
soleil; s'imaginant de prodigieuses kermesses, de continuelles ribotes
dans les campagnes; s'attendant à cette bonhomie patriarcale, à cette
joviale débauche célébrée par les vieux maîtres.
Certes, Haarlem et Amsterdam l'avaient séduit; le peuple, non
décrassé, vu dans les vraies campagnes, ressemblait bien à celui peint
par van Ostade, avec ses enfants non équarris et taillés à la serpe et
ses commères grasses à lard, bosselées de gros tetons et de gros
ventres; mais de joies effrénées, d'ivrogneries familiales, point; en
résumé, il devait le reconnaître, l'école hollandaise du Louvre l'avait
égaré; elle avait simplement servi de tremplin à ses rêves; il s'était
élancé, avait bondi sur une fausse piste et erré dans des visions
inégalables, ne découvrant nullement sur la terre ce pays magique et
réel qu'il espérait, ne voyant point, sur des gazons semés de futailles,
des danses de paysans et de paysannes pleurant de joie, trépignant
de bonheur, s'allégeant, à force de rire, dans leurs jupes et dans leurs
chausses.
Non, décidément, rien de tout cela n'était visible; la Hollande était un
pays tel que les autres et, qui plus est, un pays nullement primitif,
nullement bonhomme, car la religion protestante y sévissait, avec ses
rigides hypocrisies et ses solennelles raideurs.
Ce désenchantement lui revenait; il consulta de nouveau sa montre:
dix minutes le séparaient encore de l'heure du train. Il est grand
temps de demander l'addition et de partir, se dit-il. Il se sentait une
lourdeur d'estomac et une pesanteur, par tout le corps, extrêmes.
Voyons, fit-il, pour se verser du courage, buvons le coup de l'étrier; et
il remplit un verre de brandy, tout en réclamant sa note. Un individu,
en habit noir, une serviette sur le bras, une espèce de majordome au
crâne pointu et chauve, à la barbe grisonnante et dure, sans
moustaches, s'avança, un crayon derrière l'oreille, se posta, une
jambe en avant, comme un chanteur, tira de sa poche un calepin, et,
sans regarder son papier, les yeux fixés sur le plafond, près d'un
lustre, inscrivit et compta la dépense. Voilà, dit-il, en arrachant la
feuille de son calepin, et il la remit à des Esseintes qui le considérait
curieusement, ainsi qu'un animal rare. Quel surprenant John Bull,
pensait-il, en contemplant ce flegmatique personnage à qui sa bouche
rasée donnait aussi la vague apparence d'un timonier de la marine
américaine.
A ce moment, la porte de la taverne s'ouvrit; des
gens entrèrent apportant avec eux une odeur de
chien mouillé à laquelle se mêla une fumée de
houille, rabattue par le vent dans la cuisine dont la
porte sans loquet claqua; des Esseintes était
incapable de remuer les jambes; un doux et tiède
anéantissement se glissait par tous ses membres,
l'empêchait même d'étendre la main pour allumer un
cigare. Il se disait: Allons, voyons, debout, il faut
filer; et d'immédiates objections contrariaient ses
ordres. A quoi bon bouger, quand on peut voyager si
magnifiquement sur une chaise? N'était-il pas à
Londres dont les senteurs, dont l'atmosphère, dont
les habitants, dont les pâtures, dont les ustensiles,
l'environnaient? Que pouvait-il donc espérer, sinon
de nouvelles désillusions, comme en Hollande?
Il n'avait plus que le temps de courir à la gare, et une immense
aversion pour le voyage, un impérieux besoin de rester tranquille
s'imposaient avec une volonté de plus en plus accusée, de plus en
plus tenace. Pensif, il laissa s'écouler les minutes, se coupant ainsi la
retraite, se disant: Maintenant il faudrait se précipiter aux guichets, se
bousculer aux bagages; quel ennui! quelle corvée ça serait!—Puis, se
répétant, une fois de plus: En somme, j'ai éprouvé et j'ai vu ce que je
voulais éprouver et voir. Je suis saturé de vie anglaise depuis mon
départ; il faudrait être fou pour aller perdre, par un maladroit
déplacement, d'impérissables sensations. Enfin quelle aberration ai-je
donc eue pour avoir tenté de renier des idées anciennes, pour avoir
condamné les dociles fantasmagories de ma cervelle, pour avoir, ainsi
qu'un véritable béjaune, cru à la nécessité, à la curiosité, à l'intérêt
d'une excursion?—Tiens, fit-il, regardant sa montre, mais l'heure est
venue de rentrer au logis; cette fois, il se dressa sur ses jambes,
sortit, commanda au cocher de le reconduire à la gare de Sceaux, et il
revint avec ses malles, ses paquets, ses valises, ses couvertures, ses
parapluies et ses cannes, à Fontenay, ressentant l'éreintement
physique et la fatigue morale d'un homme qui rejoint son chez soi,
après un long et périlleux voyage.
XII

D urant les jours qui suivirent son retour, des Esseintes considéra
ses livres et, à la pensée qu'il aurait pu se séparer d'eux pendant
longtemps, il goûta une satisfaction aussi effective que celle dont il
eût joui s'il les avait retrouvés, après une sérieuse absence. Sous
l'impulsion de ce sentiment, ces objets lui semblèrent nouveaux, car il
perçut en eux des beautés oubliées depuis l'époque où il les avait
acquis.
Tout, volumes, bibelots, meubles, prit à ses yeux un charme
particulier; son lit lui parut plus moelleux, en comparaison de la
couchette qu'il aurait occupée à Londres; le discret et silencieux
service de ses domestiques l'enchanta, fatigué qu'il était, par la
pensée, de la loquacité bruyante des garçons d'hôtel; l'organisation
méthodique de sa vie lui fit l'effet d'être plus enviable, depuis que le
hasard des pérégrinations devenait possible.
Il se retrempa dans ce bain de l'habitude auquel d'artificiels regrets
insinuaient une qualité plus roborative et plus tonique.
Mais ses volumes le préoccupèrent principalement. Il les examina, les
rangea à nouveau sur les rayons, vérifiant si, depuis son arrivée à
Fontenay, les chaleurs et les pluies n'avaient point endommagé leurs
reliures et piqué leurs papiers rares.
Il commença par remuer toute sa bibliothèque latine, puis il disposa
dans un nouvel ordre les ouvrages spéciaux d'Archélaus, d'Albert le
Grand, de Lulle, d'Arnaud de Villanova traitant de kabbale et de
sciences occultes; enfin il compulsa, un à un, ses livres modernes, et
joyeusement il constata que tous étaient demeurés, au sec, intacts.
Cette collection lui avait coûté de considérables sommes; il n'admettait
pas, en effet, que les auteurs qu'il choyait fussent, dans sa
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebookluna.com

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy