Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Open sidebar
project
drupal
Commits
d672d203
Commit
d672d203
authored
Jan 11, 2013
by
catch
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issue
#1825450
by Berdir, znerol: Use lock service in lock().
parent
579c3ba7
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
30 additions
and
35 deletions
+30
-35
core/includes/bootstrap.inc
core/includes/bootstrap.inc
+1
-21
core/includes/install.core.inc
core/includes/install.core.inc
+8
-9
core/lib/Drupal/Core/Lock/DatabaseLockBackend.php
core/lib/Drupal/Core/Lock/DatabaseLockBackend.php
+9
-0
core/modules/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php
...s/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php
+1
-1
core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
+5
-0
core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
.../modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+1
-2
core/modules/system/lib/Drupal/system/Tests/Upgrade/UpgradePathTestBase.php
...m/lib/Drupal/system/Tests/Upgrade/UpgradePathTestBase.php
+5
-2
No files found.
core/includes/bootstrap.inc
View file @
d672d203
...
...
@@ -3495,27 +3495,7 @@ function drupal_check_memory_limit($required, $memory_limit = NULL) {
* @return Drupal\Core\Lock\LockBackendInterface
*/
function
lock
()
{
$lock_backend
=
&
drupal_static
(
__FUNCTION__
);
if
(
!
isset
(
$lock_backend
))
{
$class_name
=
variable_get
(
'lock_backend'
,
'Drupal\Core\Lock\DatabaseLockBackend'
);
// Do not allow a WSOD here, if the class does not exists use the default
// one.
// @todo We should log failed class loading for debugging, but for that we
// need an early watchdog function that logs into a file if the database
// is not present.
if
(
class_exists
(
$class_name
))
{
$lock_backend
=
new
$class_name
();
}
else
{
$lock_backend
=
new
DatabaseLockBackend
();
}
drupal_register_shutdown_function
(
array
(
$lock_backend
,
'releaseAll'
));
}
return
$lock_backend
;
return
drupal_container
()
->
get
(
'lock'
);
}
/**
...
...
core/includes/install.core.inc
View file @
d672d203
...
...
@@ -338,6 +338,14 @@ function install_begin_request(&$install_state) {
$container
->
register
(
'config.factory'
,
'Drupal\Core\Config\ConfigFactory'
)
->
addArgument
(
new
Reference
(
'config.storage'
))
->
addArgument
(
new
Reference
(
'event_dispatcher'
));
// The install process cannot use the database lock backend since the database
// is not fully up, so we use a null backend implementation during the
// installation process. This will also speed up the installation process.
// The site being installed will use the real lock backend when doing AJAX
// requests but, except for a WSOD, there is no chance for a a lock to stall
// (as opposed to the cache backend) so we can afford having a null
// implementation here.
$container
->
register
(
'lock'
,
'Drupal\Core\Lock\NullLockBackend'
);
drupal_container
(
$container
);
}
...
...
@@ -353,15 +361,6 @@ function install_begin_request(&$install_state) {
require_once
DRUPAL_ROOT
.
'/core/includes/cache.inc'
;
$conf
[
'cache_classes'
]
=
array
(
'cache'
=>
'Drupal\Core\Cache\MemoryBackend'
);
// The install process cannot use the database lock backend since the database
// is not fully up, so we use a null backend implementation during the
// installation process. This will also speed up the installation process.
// The site being installed will use the real lock backend when doing AJAX
// requests but, except for a WSOD, there is no chance for a a lock to stall
// (as opposed to the cache backend) so we can afford having a null
// implementation here.
$conf
[
'lock_backend'
]
=
'Drupal\Core\Lock\NullLockBackend'
;
// Prepare for themed output. We need to run this at the beginning of the
// page request to avoid a different theme accidentally getting set. (We also
// need to run it even in the case of command-line installations, to prevent
...
...
core/lib/Drupal/Core/Lock/DatabaseLockBackend.php
View file @
d672d203
...
...
@@ -14,6 +14,15 @@
*/
class
DatabaseLockBackend
extends
LockBackendAbstract
{
/**
* Constructs a new DatabaseLockBackend.
*/
public
function
__construct
()
{
// __destruct() is causing problems with garbage collections, register a
// shutdown function instead.
drupal_register_shutdown_function
(
array
(
$this
,
'releaseAll'
));
}
/**
* Implements Drupal\Core\Lock\LockBackedInterface::acquire().
*/
...
...
core/modules/simpletest/lib/Drupal/simpletest/DrupalUnitTestBase.php
View file @
d672d203
...
...
@@ -132,7 +132,7 @@ public function containerBuild($container) {
global
$conf
;
// Keep the container object around for tests.
$this
->
container
=
$container
;
$con
f
[
'lock_backend'
]
=
'Drupal\Core\Lock\NullLockBackend'
;
$con
tainer
->
register
(
'lock'
,
'Drupal\Core\Lock\NullLockBackend'
)
;
$conf
[
'cache_classes'
]
=
array
(
'cache'
=>
'Drupal\Core\Cache\MemoryBackend'
);
$container
->
register
(
'config.storage'
,
'Drupal\Core\Config\FileStorage'
)
...
...
core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
View file @
d672d203
...
...
@@ -866,6 +866,11 @@ protected function prepareEnvironment() {
// Create and set new configuration directories.
$this
->
prepareConfigDirectories
();
// Reset statics before the old container is replaced so that objects with a
// __destruct() method still have access to it.
// @todo: Remove once they have been converted to services.
drupal_static_reset
();
// Reset and create a new service container.
$this
->
container
=
new
ContainerBuilder
();
drupal_container
(
$this
->
container
);
...
...
core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
View file @
d672d203
...
...
@@ -808,9 +808,8 @@ protected function setUp() {
$batch
=
&
batch_get
();
$batch
=
$this
->
originalBatch
;
// Revert install_begin_request() cache
and lock
service overrides.
// Revert install_begin_request() cache service overrides.
unset
(
$conf
[
'cache_classes'
]);
unset
(
$conf
[
'lock_backend'
]);
// Set path variables.
...
...
core/modules/system/lib/Drupal/system/Tests/Upgrade/UpgradePathTestBase.php
View file @
d672d203
...
...
@@ -180,8 +180,8 @@ protected function variable_set($name, $value) {
* Specialized refreshVariables().
*/
protected
function
refreshVariables
()
{
//
No operation if the child has not been
upgraded
yet
.
if
(
!
$this
->
upgradedSite
)
{
//
Refresh the variables only if the site was already
upgraded.
if
(
$this
->
upgradedSite
)
{
global
$conf
;
cache
(
'bootstrap'
)
->
delete
(
'variables'
);
$conf
=
variable_initialize
();
...
...
@@ -263,6 +263,9 @@ protected function performUpgrade($register_errors = TRUE) {
// of the child site directly from this request.
$this
->
upgradedSite
=
TRUE
;
// Force a variable refresh as we only just enabled it.
$this
->
refreshVariables
();
// Reload module list for modules that are enabled in the test database
// but not on the test client.
system_list_reset
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment